MySQL和PHP unicode问题

时间:2008-12-10 12:32:43

标签: php javascript mysql html ajax

我有从微软访问文件导出的以下UTF-8文件

http://www.yousendit.com/download/TTZtT214SU84Q1FLSkE9PQ

我确保我的mysql数据库是utf8的状态;客户端和服务器的命令。我使用以下命令将上述文件插入到我的数据库中:

LOAD DATA LOCAL INFILE 'tblAuction1.txt' INTO TABLE Auctions FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\';

所有似乎都很好,unicode字符显示在html中,因为它们应该尽我所知。数据库字段的直接内容如下:

http://www.nomorepasting.com/getpaste.php?pasteid=22622

但是会显示生成的html代码:

http://www.nomorepasting.com/getpaste.php?pasteid=22617

显示为

费用清单

1.00 
<\/OBJECT>
');\n\t\t<\/SCRIPT>\n\t\t

在浏览器中

我用来显示的代码是:

http://www.nomorepasting.com/getpaste.php?pasteid=22618

在我更改编码之前工作正常。

作为一个附带问题,我想知道为什么从制表符分隔更改为分号分隔,并且封闭字段会将导出文件的大小减半。制表符是一个单个字符,就像;字符,并添加引号应该增加大小?

1 个答案:

答案 0 :(得分:1)

根据Web服务器的配置,您可能需要使用header()将编码显式设置为“text / html; charset = UTF-8”:

header('Content-Type: text/html; charset=UTF-8');

这应该足以解决您的特定问题,但是 - 如果您还打算操纵字符串 - 请注意PHP包含许多不能安全使用多字节字符的函数:您至少应该正确配置{ {3}}

我的书签中也有mbstring extension,我认为它仍然相关。

豫ICP备18024241号-1