gpt4 book ai didi

php - 尝试使用 PHP 将带有 UNICODE 代码的 JSON 字符串转换为 UTF8

转载 作者:行者123 更新时间:2023-12-03 08:45:54 25 4
gpt4 key购买 nike

我有一个 JSON 字符串,其中包含许多 UNICODE 代码,我正在寻找一种使用 PHP 将它们转换为 UTF8 的方法。JSON 字符串的值如下:

{
"capital":"Bras\u00edlia",
"symbol":"\u20a1"
}

然后是其他值,例如:

{
"native": "اليَمَن",
"symbol_native": "ر.ي.‏"
}

JSON 字符串包含在 PHP 变量中,如下所示:

$countries ='{  
"AR":{
"name":"Argentina",
"native":"Argentina",
"phone":"54",
"continent":"SA",
"capital":"Buenos Aires",
"currency":{
"symbol":"AR$",
"name":"Argentine Peso",
"symbol_native":"$",
"decimal_digits":2,
"rounding":0,
"code":"ARS",
"name_plural":"Argentine pesos",
"vat":"21",
"vat_name":"IVA"
},
"tin":"CUIT",
"languages":"es,gn",
"iso":"ARG"
}';

已经尝试了网络上的大多数解决方案,但没有一个有效,尝试失败:

utf8_encode()
mb_convert_encoding()
iconv()
header('charset=utf-8');

我发现成功将 UNICODE 代码转换为 UTF8 的唯一方法是使用 str_replace() 创建一个 UNICODE 代码数组和另一个具有等效 UTF8 值的数组,但我不会涵盖该数组所有可能的组合,所以我想知道是否有更简单的方法来做到这一点。

这适用于数组中的字符:

function unicodeToutf8($str){
$repl = ['\u00e1','\u00e9','\u00ed','\u00f3','\u00fa','\u00f1','\u00c1','\u00c9','\u00cd','\u00d3','\u00da','\u00d1'];
$with = ['á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ'];
return str_replace($repl,$with,$str);
}

谢谢!

最佳答案

如果您只是尝试在不使用 unicode 转义序列的情况下重新编码 JSON,则操作方法如下:

json_encode(json_decode($input), JSON_UNESCAPED_UNICODE);

关于php - 尝试使用 PHP 将带有 UNICODE 代码的 JSON 字符串转换为 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61487850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com