MySQL在VARCHAR中正确地保存了PHP中的UTF-8条目,但在文本blob中没有

时间:2016-01-07 20:27:04

标签: php mysql utf-8

我目前在我的网站的文本段落中有以下文本片段

let’s get to it

撇号字符是UTF-8字符集的一部分,它以表格

的形式正确保存在指定为VARCHAR列的表列中
 let’s get to it

我的客户正确解析了哪个。如果我将相同的文本放入MySQL中的TEXT列,它将存储如下:

let’s get to it. 

这两者是否有任何不同之处,若然,我该如何更改呢?

1 个答案:

答案 0 :(得分:0)

let’s是Mojibake。 Latin1正在悄悄进入。

“text blob” - 它是TEXT还是BLOB?它们是不同的数据类型。

let’s来自htmlentities()或类似内容。无论VARCHAR如何,都可以在TEXTBLOBCHARACTER SET中存储和检索。 MySQL将转换为。

Mojibake 可能来自

  • 客户端中的字节在utf8(正常)中正确编码。
  • 您可能默认与SET NAMES latin1(或set_charset('latin1')或...)相关联。 (应该是utf8。)
  • 表格中的列可能是CHARACTER SET utf8,也可能不是<access origin="tel:*" launch-external="yes"/> ,但应该是这样。