如何将字符串转换为可读视图

时间:2015-10-16 09:42:06

标签: php pdo encoding character-encoding

从某个数据库我得到字符串,它看起来像这样

[5] => Array
    (
        [0] => 6
        [body] =>  ÉÓËÒÅÎÎÅ ÔÅÂÅ ÖÅÌÁÀ ã×ÅÔÏ×, ÌÀÂ×É É ËÒÁÓÏÔÙ!
    )

如何使用php将此字符串转换为可读取的视图? 我使用选项“SET NAMES utf8”的PDO类型连接,也许我需要更改此选项?

使用phpmyadmin我看到这个表格的解释

table description

并浏览

table view

1 个答案:

答案 0 :(得分:0)

懒惰解决方案:将名称设置为latin1(或者根本不设置它,因为它是默认设置的。)

它将返回原始cp1251的结果,您可以使用iconv()或mb_convert_encoding()以任何其他编码进行转换。

复杂但正确的解决方案:为表列设置正确的编码。它必须是cp1251,而不是latin1。为此,您必须在表定义中使用CHARACTER SET=1251重新创建表,然后使用数据重新填充表。

之后一切都将按顺序恢复:

  • phpmyadmin将正确显示您的数据
  • 您可以将名称设置为utf8并获取此编码中的数据
  • (最重要的部分)WHEREORDER BY运营商会让你发疯。