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,测试不管有没有“孙雷”都没有问题
  • 相关阅读:
    笨办法学Python——学习笔记4
    意识、语言、文字和程序感想
    笨办法学Python——学习笔记3
    把vim作为shell ide
    HDUYuna's confusion 树状数组 Or Multiset
    POJ3252 Round Numbers 组合数学
    HDU3874 Necklace 树状数组+离线处理
    UVA10212 The Last Nonzero Digit. 分解质因子+容斥定理
    HDU1041 Computer Transformation 大数
    HDUFish买电脑 二分查找
  • 原文地址:https://www.cnblogs.com/xingyukun/p/796489.html
Copyright © 2011-2022 走看看