我有一个 txt 文件,如果我使用标准文本编辑器(如记事本或 scite)打开,我可以读取如下字符串:
Artist1 – Title 1
Artist2 – Title 2
然后我用我的 PHP 脚本打开它并阅读以下几行:
$tracklistFile_name=time().rand(1, 1000).".".pathinfo($_FILES['tracklistFile']['name'], PATHINFO_EXTENSION);
if(((pathinfo($tracklistFile_name, PATHINFO_EXTENSION)=='txt')) && (move_uploaded_file($_FILES['tracklistFile']['tmp_name'], 'import/'.$tracklistFile_name))) {
$fileArray=file('import/'.$tracklistFile_name, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$fileArray=array_values(array_filter($fileArray, "trim"));
for($i=0; $i<sizeof($fileArray); $i++) {
echo $fileArray[$i]."<br />";
}
}
而且...哇...我得到这个结果:
Artist1 � Title1
Artist2 � Title2
???那些符号是什么?我认为编码失败。
该符号是如此错误,以至于我无法将它们插入数据库,也无法使用mysql_real_escape_string()
。事实上,当我尝试插入它们时,我收到此错误:
Incorrect string value: '\x96 Titl...' for column 'atl' at row 1
我该如何解决这个问题?建议?
EDIT
尝试在插入/添加这些字符串之前添加 utf8_encode() :现在插入不会失败,但结果是:
Artist1 Title1
Artist2 Title2
所以我丢失了信息。为什么?