字符编码问题 - 文本文件到数据库

时间:2012-03-04 05:22:50

标签: php character-encoding

我有一堆写入Linux服务器的文本文件,我需要将其插入数据库。我正在使用file_get_contents()来获取文件的内容。文本文件中有很多特殊字符(例如:àáâãäåæçèéêëìíîïòóôõöøùúû),它们只是没有正确进入数据库(这特别是进入Wordpress网站)。

我检查或尝试过的事情:

  • 我将数据放入的数据库是utf8_general_ci
  • 我用过mb_detect_encoding()来查看文本文件是什么;它认为它们是ISO-8859-1
  • 我使用文件-bi检查SSH中的字符集;它认为它们是纯文本/无字符串
  • 我尝试过utf8_encode()
  • 我尝试过mb_convert_encoding()
  • 我尝试过iconv()
  • 我尝试过htmlentities()
  • 确认WP站点上的元标记设置为输出utf-8
  • 服务器的字符编码(在php.ini中设置)设置为ISO-8859-1

根据我的尝试,我会得到一个带有小波浪形的A,或者更常见的是一个看起来像数字00 86的矩形。

我很难过 - 如果有人有任何其他建议,我全都听见了!

2 个答案:

答案 0 :(得分:1)

确保(按重要性顺序):

  1. 您的数据采用UTF-8编码(如果适用,这包括您的数据库)。
  2. 您的服务器正在发送utf-8标头。
  3. 您的HTML包含utf-8元标记。
  4. 数字1和2是最常见的问题。 (特别是2号 - 如果您的服务器发送指定不同编码的标头,浏览器将尝试使用该编码,即使元标记显示“utf-8”。)

答案 1 :(得分:0)

尝试       mysql_set_encoding( 'UTF-8'); 对于所有数据库连接。