我正在使用PHP和ripcord
通过XML-RPC从Udontu 14.04 ENG上的Odoo 9中检索合作伙伴列表某些名称包含一个或多个变音符号:
所有这些名称都是使用一个版本的Chrome从一台运行Windows 8.1的计算机上输入的。
奇怪的事实是,我得到一个列表,其中一些变音符号是正确的,其他一些有编码问题,如:
相同字符串中的相同变音符号是否正确编码。
在后续调用中,结果始终相同。
如果我编辑字符串,那么它可以改变结果,给出
我需要输出一个JSON,因此我需要用UTF-8对它进行编码:但目前还不可能,因为我不知道原始文本的编码是什么(而且似乎没有任何编码)完全编码!)
有什么想法吗?
答案 0 :(得分:2)
我发现传入的数组是charset“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);