为什么具有相同编码的字符串在MySQL和HTML上的呈现方式不同?

时间:2011-11-12 11:12:34

标签: php mysql html encoding

这是我在HTML表单中输入的输入字符串:

  

람다대수(λ - ,lambda - )는함수정의,함수적용,귀납적함수를수식으로표현하기위한형식체계이다。   1930年년대알론조처치가수학기초을연구하는과정에서람다대수의형식을제안하

这是TINYTEXT类型的MySQL 数据库字段中显示的字符串:

  

람ë<¤ëŒ€ì〜(Î - - ,lambda - )늓함ì〜ì•ì〜,함ìììì©,   ê·€ë··ìì«~~~~~~~~~~~~~~~~~~~~ << << << << << << << << / p>

这是查询时HTML页面上的输出

  

람다대수(λ - ,lambda - )는함수정의,함수적용,귀납적함수를수식으로표현하기위한형식체계이

HTML和数据库都以UTF-8编码。我想问两件事:

  1. 为什么MySQL数据库中的字段与HTML中的字段呈现不同?
  2. 如何捕获上述字符串的长度(以字节为单位) 确保它在TINYTEXT
  3. 的255限制范围内

1 个答案:

答案 0 :(得分:2)

最有可能是最常见的陷阱:您未将数据库 连接 设置为正确的编码。请参阅why do i have to use mb_convert_encoding($name,'ISO-8859-15','utf-8') to get accented chars to display?