我有一个edit.php文件,可以让我编辑网页表单的内容。所有文本都存储在.txt文件中。当我尝试输入日语或韩语等字符时出现问题。
我会输入这个:“たんじょびおめでとう”
一旦我保存它就会返回:“%u305F%u3093%u3058%u3087%u3073%u304A%u3081%u3067%u3068%u3046”
是否有人对如何正确保存字符有任何想法。我发现如果我将.txt文件上的编码更改为UTF-8并使用记事本输入字符而不是通过edit.php它会保存得很好,但我宁愿不必这样做。
感谢您的帮助!
修改
我不确定要放什么代码,但我假设它与我的保存方式有关。这是我的save.php文件:
$content = $_POST['content'];
if($content == ''){
echo "You cannot null this field, please reload the page.";
} else {
echo $content;
$myFile = "text/".$_POST['id'].".txt";
$fh = fopen($myFile, 'w') or die("Could not update");
fwrite($fh,$content);
fclose($fh);
}
答案 0 :(得分:0)
您需要检查您输入的字符编码(可能是Windows上的ISO 8859-1或CP 1252)。
在任何情况下,将返回的字符串转换为所需的输出编码应该很容易,就像你的字符串:
%u305F%u3093%u3058%u3087%u3073%u304A%u3081%u3067%u3068%u3046
您输入的日语的10个Unicode转义序列(UTF-8)(“生日快乐”)。当您将它们直接输入到文本文件中时,我假设应用程序正在正确设置编码。
如果是Web表单,请检查请求标头中的编码设置,例如:
Content-Type text/xml;charset=utf-8