【问题标题】:Weird encoding issue in XML-RPC callXML-RPC 调用中的奇怪编码问题
【发布时间】:2016-09-07 15:56:41
【问题描述】:

我正在使用 PHP 和 ripcord 通过 XML-RPC 从 Ubuntu 14.04 ENG 上的 Odoo 9 检索合作伙伴列表

有些名字包含一个或多个变音符号:

  • 码头
  • 弗雷尔码头

所有这些名称都是在一台运行 Windows 8.1 且使用一个 Chrome 版本的计算机上输入的。

奇怪的事实是,我得到了一个列表,其中一些变音符号是正确的,而另一些则存在编码问题,例如:

  • 皮尔
  • Fr�re Pièr

同一字符串中的相同变音符号是否正确编码。

在随后的调用中,结果总是相同的。

如果我编辑字符串,那么它可能会改变结果,给出

  • Frère Pi�r
  • 弗雷尔码头
  • Fr�re Pi�r...

我需要输出一个 JSON,因此我需要用 UTF-8 对其进行编码:但目前这是不可能的,因为我不知道原始文本的编码是什么(而且似乎没有任何编码!)

有什么想法吗?

【问题讨论】:

    标签: php encoding openerp xml-rpc diacritics


    【解决方案1】:

    我发现传入的数组是字符集“Latin1”

    我解决了标准化从 XML-RPC 输出生成的数组,递归地应用多字节转换函数:

    // given an XML-RPC output named $arr_output...
    
    function descramble_diacritics(&$entry, $key) {
        $entry = mb_convert_encoding($entry, 'UTF-8', 'Latin1');
    }
    array_walk_recursive($arr_output, 'descramble_diacritics');
    
    header('Access-Control-Allow-Origin: *');
    header('Content-Type: application/json');
    echo json_encode($arr_output);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多