将unicode字符写入php中的文件

时间:2011-06-16 16:41:52

标签: php

我有一个json数组,它保存了与语言无关的正确字符串,但是当json被编码并写入文件时,它没有正确的值。它具有其他值随机英文字母,例如:(uuadb)我想将一个字符串写入一个文件,其中字符串可以是任何语言。现在我正在使用泰米尔语进行测试。但我发现PHP不支持unicode。请帮助我如何使用PHP将unicode charaters写入文件。 我尝试使用pack函数,但如何使用任何语言的包函数或者有没有其他方法这样做。请帮助我......

1 个答案:

答案 0 :(得分:0)

我的猜测是你看到\uXXXX转义而不是你要求的非ASCII字符。 json_encode似乎总是转义Unicode字符:

<?php
$arr = array("♫");
$json = json_encode($arr);
echo "$json\n";
    # Prints ["\u266b"]

$str = '["♫"]';
$array = json_decode($str);
echo "{$array[0]}\n";
    # Prints ♫
?>

如果这是你得到的,那没关系。您只需要确保它在接收端正确解码。

另一种可能性是你传递的字符串不是UTF-8。根据{{​​3}}和json_encode的文档,这些函数仅适用于UTF-8数据。在输入字符串上调用json_decode,并确保输出UTF-8ASCII