PHP a rencontré un problème magique causé par des caractères chinois tronqués
大家讲道理
大家讲道理 2017-05-31 10:33:23
0
2
978

Par exemple

$data = 'Baidu�Tencent,Alibaba';

$data1 // est une variable une fois imprimée, c'est 'Baidu�Tencent, Alibaba'

.

var_dump($data);
var_dump($data1);

Résultats d'impression :
$data: string(24) "Baidu�Tencent, Alibaba"
$data1:string(22) "Baidu�Tencent, Alibaba"

$keywordsData = json_encode($data, JSON_UNESCAPED_UNICODE);
$keywordsData1 = json_encode($data1, JSON_UNESCAPED_UNICODE);
var_dump($keywordsData);
var_dump($keywordsData1);

Résultats d'impression :
keywordsData:string(26) ""Baidu�Tencent, Alibaba""
keywordsData1:bool(false)

Pourquoi est-ce ? Je veux obtenir la variable directement, mais maintenant je rencontre ce problème, veuillez répondre, merci

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
phpcn_u1582
$data:string(24) "百度�腾讯,阿里"  //这里8个字符,utf-8中的中文占3个字符,因此长度为24
$data1:string(22) "百度�腾讯,阿里" //这里长度为 22,说明不是utf-8 而json_encode不支持非utf-8字符
//输出错误看看
var_dump(json_last_error());
習慣沉默

Les deux variables sont différentes. Bien qu'elles soient toutes deux des chaînes, l'une a une longueur de 24 et l'autre une longueur de 22. La seconde n'est évidemment pas codée en UTF8, donc json_encode le sera bien sûr. faux. json_encode当然会错误。

你可以先检测下字符串编码,mb_detect_encoding,然后再转成UTF8,mb_convert_encoding

Vous pouvez d'abord détecter l'encodage de la chaîne, mb_detect_encoding, puis le convertir en UTF8, mb_convert_encoding. 🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal