我遇到了将数据(带有特殊字符)写入文件的问题。
我正在做这样的事情:
//Writing data..
<?php
header('Content-Type: text/html; charset=utf-8');
$file = 'filename.db';
$data = 'Some string with special characters';
//Writing to the file..
@file_put_contents($file, json_encode($data));
?>
这很好用。 当我在Notepad ++中打开db文件时,数据是正确的。 特殊字符也可以正确存储:
//Reading data..
<?php
header('Content-Type: text/html; charset=utf-8');
$file = 'filename.db';
//Reading from the file..
$data = file_get_contents($file);
$data = json_decode(utf8_encode(stripslashes($data)));
echo $data;
?>
这会将特殊字符显示为“????”或者有时像“u00cf”或其他一些角色。
出了什么问题,在哪里?
任何帮助将不胜感激, 感谢。
答案 0 :(得分:1)
utf8_encode
运行它来误导数据?这就是破坏JSON格式从而破坏你的数据的原因。 只需将原始字符串写入文件并按原样读回来,完成!
$string = 'ユーティーエッフエイト';
file_put_contents('file.txt', $string);
$string = file_get_contents('file.txt');
你不需要做什么。
答案 1 :(得分:0)
在数据阅读脚本中,尝试:
$ data = json_decode(mb_convert_encoding(stripslashes($ data), “UTF-8”));