在阅读制表符分隔的文本文件并将其插入MySQL数据库时,我真的很头疼。
制表符分隔文本文件是我从MS SQL数据库生成的(我认为),我编写了一个简单的脚本来读取文件并将其插入MySQL数据库的现有表中。
但是,txt文件中的数据似乎存在一些问题。当我的PHP脚本解析文件并输出INSERT语句时,每个字段中的值都比它们应该的长。例如,第一个字段应该是简单的两个字符的字母数字值。如果我回显INSERT语句,使用Firebug(在Firefox中),每个字符之间是黑色菱形中的问号。如果我var_dump值,我得到以下内容:
string(5) "A1"
现在,这清楚地显示了一个两个字符的字符串,但是var_dump告诉我它是五个字符长!
如果我修剪()值,我得到的只是第一个字符(在本例中为“A”)。
我怎样才能获得其他角色,即使它只是为了删除它们?此外,这似乎迫使MySQL将值插入BLOB,而不是作为varchar插入。
西蒙
UPDATE 如果我这样做:
echo mb_detect_encoding($arr[0]);
我得到'ASCII'的结果。这不是多字节的,是吗??
答案 0 :(得分:1)
答案 1 :(得分:0)
好的,通过在记事本中打开TXT文件并将其专门保存为UTF-8解决了所有这些问题。
我仍然不知道使用了什么编码(也许是UNICODE ??)但它现在全部排序了