NaN 2023-10-27 09:11 采纳率: 18.2%
浏览 12
已结题

readAsText

一个UTF-8的txt文件 前后是用GBK解析的,拿到的结果在谷歌和ie的结果不同;
解析完结果:

img


前端代码:

img

  • 写回答

16条回答 默认 最新

  • 社区专家-Monster-XH 2023-10-27 09:12
    关注
    获得0.80元问题酬金

    基于Monster 组和GPT的调写:

    • 这说明在不同的浏览器上,GBK解析的结果不同。这通常与浏览器的实现和字符编码库的差异有关。

    你可以采用以下方法:

    1. 用jschardet自动检测编码:你已经在代码中引入了jschardet库,但实际上并没有使用它来检测文件的实际编码。通过用jschardet自动检测编码,你可以确保始终使用正确的编码来读取文件。

      修改如下:

      function upload(e) {
          var fileList = e.files;
          var render = new FileReader();
      
          render.onload = function(e) {
              var v = render.result;
              var encoding = jschardet.detect(v).encoding;
              if (encoding == 'UTF-8') {
                  render.readAsText(fileList[0], 'UTF-8');
              } else {
                  document.querySelector('.yz').innerHTML = v;
              }
          }
      
          render.readAsText(fileList[0], 'GBK');
      }
      
    2. 确认你的文件确实是UTF-8编码:有时,文件可能看起来像UTF-8,但实际上可能使用了其他编码。确保文件确实是UTF-8编码的,可以避免解析问题。

    3. 手动设置编码选项:除了自动检测编码,你还可以为用户提供一个下拉列表,让他们手动选择要使用的编码(例如GBK、UTF-8等)。

    4. 尝试其他字符编码库:可能是由于浏览器或库之间的差异导致的。可以考虑使用其他的字符编码转换库,例如iconv-lite-js。

    5. 测试在多个浏览器上:确保你的解决方案在所有主要的浏览器(如Chrome、Firefox、IE、Edge等)上都可以工作。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c