使用PHP和SQL进行空间编码的问题

时间:2017-08-30 11:15:16

标签: php mysql utf-8

所以我有一张excel表格,我已将其保存为CSV并使用网页选项编码为UTF-8。当我最初这样做时,它显示了我删除的很多重音字母,这很奇怪,因为内容是一个非常简单的语言列表。我删除了所有这些字符,并使用带有LOAD DATAutf8字符集的CSV导入到SQL。我运行了查询'SET NAMES utf8',我在phpmyadmin的操作菜单中将我的数据库的Collat​​ion更改为utf8_general_ci。我已经设置了

<meta charset="utf-8"/>

位于我的网页顶部,我已经设置了

<?php echo utf8_encode($row['lang']); ?>

在我的网页中回显一串语言。

我得到的是一个离开div容器的列表。我已经确定一些空格似乎能够下降到一个新的行,因此浏览器似乎认为列表是一个长字而不是几个分开。有人有什么想法吗?

示例数据:“英语,西班牙语,法语,俄语”

1 个答案:

答案 0 :(得分:0)

目前,您的问题描述不足以重现您的问题。

但是,我建议使用一个常用的配方,大部分时间都可以找出问题所在:

0。在输出中找到编码奇怪/奇怪/错误

的示例

在以下步骤中使用此示例,以确定问题的位置。

1。文件中的数据是否正确?

打开文本文件,看看是否有一些奇怪的字符。如果有,那可能是你的问题。解决它。

2。数据库中的数据是否正确?

使用phpmyadmin打开您的数据库或其他一些不会使用编码来显示误导性内容的工具。检查是否有奇数字符。如果有,您的导入或您的表格/数据库的字符集/整理是错误的。解决它。

3。 http头中的字符集是否正确?

使用浏览器开发人员工具查找响应的字符集。也使用视图 - &gt;文本编码(这将在firefox中,类似于其他浏览器)菜单选项,以确定,如果切换到utf-8时有什么变化。这通常意味着,编码头不匹配整个有效载荷的编码。设置http标头和元标记(通常被忽略)charset可能有所帮助。

4。确保一致的数据编码

php脚本文件和db查询返回的数据具有相同的编码(最好是utf-8),特别是如果输出php文件中的文字字符串或其他文件输出不同的编码。在某些情况下,这并不是非常简单。但可能有些iconv恶作剧会对此有所了解,file -i也有助于确定脚本文件的编码。

如果所有这一切都井然有序,我就会失去想法。如果您在理解部分或全部这些部分时遇到问题......您应该阅读或要求其他人这样做。