php - MySQL 和 PHP unicode 问题

标签 php javascript mysql html ajax

我有以下从 microsoft access 文件导出的 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

显示为

费用 list

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

在浏览器中

我用来展示这一点的代码是:

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

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

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

最佳答案

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

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

这对于您的特定问题来说应该足够了,但是 - 如果您还打算操作字符串 - 请注意 PHP 包含许多与多字节字符一起使用不安全的函数:您至少应该正确配置 mbstring extension .

我的书签中也有这个 cheatsheet,我认为它仍然相关。

关于php - MySQL 和 PHP unicode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355897/

相关文章:

javascript - 选择框多选选项无法在 Microsoft Edge 浏览器上使用 JQuery 清除

javascript - 为什么 <video> 从 DOM 中移除后停止播放,而它仍然可以分离播放?

mysql - 再次加载数据 infile 还是从表中插入?

php - 在 PHP 中使用日期函数输出用户友好的日期

php - PHP OOP查询无法正确更新数据库

php - 使用 jQuery 动态更新表字段的首选方法?

php - AWS RDS 连接最佳实践

javascript - jQuery Textarea 验证不起作用

mysql - 如何添加 SELECT 语句结果?

php - 在 MysQl 中插入多个复选框值