zoukankan      html  css  js  c++  java
  • 又是编码问题

    问题描述:

    将以下文本保存为一个excel文件,中文显示有问题,但如果去掉标记为红色的部分,一切显示正常:
    <div>
     <table cellspacing="0" rules="all" border="1" style="border-collapse:collapse;">
      <tr>
       <th scope="col">分类名</th><th scope="col">分类编码</th>
      </tr><tr>
       <td>按供应商属性分</td><td>&nbsp;03</td>
      </tr><tr>
       <td>长期供应商</td><td>&nbsp;0301</td>
      </tr><tr>
       <td>备选供应商</td><td>&nbsp;0302</td>
      </tr><tr>
       <td>黑名单供应商</td><td>&nbsp;0303</td>
      </tr><tr>
       <td>newNode</td><td>&nbsp;0304</td>
      </tr><tr>
       <td>newNode</td><td>&nbsp;0305</td>
      </tr><tr>
       <td>newNode</td><td>&nbsp;04</td>
      </tr><tr>
       <td>newNode</td><td>&nbsp;06</td>
      </tr><tr>
       <td>孙雷</td><td>&nbsp;07</td>
      </tr><tr>
       <td>孙雷</td><td>&nbsp;07</td>
      </tr>

     </table>
    </div>
     
    如果在文件的开头部分加上<meta http-equiv="Content-Type" content="text/html; charset=gb2312">则不论有无红色部分均能正常显示。

    自己当时觉得很奇怪,但并没有想起来按照utf-8编码来保存那个excel文档。下面是请教了一个同事之后得出的一点结论:
       估计是 excel 内部有一个“自动识别编码”的功能
       1、当内容比较少时识别为 ansi,而中文内容过多时发现应该是 gb2312 的,但文件本身保存是按照 ansi 存的,按照 gb2312 解码出错
       2、加上文件头时 excel 直接按照 gb2312 识别,出错而专为 ansi 读取
       3、如果文件直接保存为 utf-8,测试不管有没有“孙雷”都没有问题
  • 相关阅读:
    【mybatis】02-spring集成
    【Spring】xxAware
    【性能调优】Arthas
    【算法】其他算法(字典树Trie等)
    【多线程】JDK源码类图
    POJ-1251-Jungle Roads
    Prim算法模板
    敌兵布阵-线段树(1)
    hdu-1541-Stars (树状数组)
    母牛生小牛
  • 原文地址:https://www.cnblogs.com/xingyukun/p/796489.html
Copyright © 2011-2022 走看看