• Drupal7 webform 导出中文Results乱码问题解决


    问题呈现:

    一个多语言项目,有简体中文与繁体中文,在用webform导出Results为excel文件时,用excel打开乱码,而文件编码为ANSI。

    解决方法:

    1. 找到webform.export.inc文件里的$output = chr(255).chr(254);修改为$output = "\xEF\xBB\xBF";
    2. 找到webform.export.inc文件里的$row = mb_convert_encoding($row, 'UTF-16LE', 'UTF-8');修改为 $row = mb_convert_encoding($row, 'UTF-8');

    解决原理:

    主要解决手段是把文件编码与字符编码都为UTF-8就可以,但webform会把字符编码改为UTF-16LE。除了改正字符编码,也要注意输出正确的DOM,webform会默认加上DOM,关于DOM的意义如下:
    00 00 FE FF UTF-32, big-endian
    FF FE 00 00 UTF-32, little-endian
    FE FF UTF-16, big-endian
    FF FE UTF-16, little-endian
    EF BB BF UTF-8
     
    webform代码中的$output = chr(255).chr(254);就是字符串"\xFF\xFE",即UTF-16, big-endian ,而我们需要输出UTF-8,所以使用EF BB BF,因此就需要改为"\xEF\xBB\xBF"。
  • 相关阅读:
    63.C++异常
    62.C++文件操作list实现内存检索,实现两千万数据秒查
    61.C++文件操作实现硬盘检索
    ios之数据持久化
    ios NSRange
    安排
    接口隔离原则
    Liskon替换原则
    开放封闭原则
    单一职责原则
  • 原文地址:https://www.cnblogs.com/catcat811/p/3121501.html
Copyright © 2020-2023  润新知