WEB 开发中乱码问题总结 一个网站如果需要国际化,就需要将编码从 GB2312 转成 UTF-8,其中有很多的问题需要注 意,如果没有转换彻底,将会有很多的编码问题出现!" e' l5 \" Y$ L( F' C 主要有五个方面:" n
, P- ^6 n&; B) @) i' P" x" `+ i a, J7 g1 f$ j
一..HTML 页面转 UTF-8 编码问题, E- s9 Q* @) F 二.PHP 页面转 UTF-8 编码问题 6 n3 j0 U/ g; R. E/ z! U/ p! D 三.MYSQL 数据库使用 UTF-8 编码的问题% M* z9 u&; b7 F2 W 四.JS 相关的 UTF-8 编码问题 0 z5 K; f. j0 d 五.FLASH 相关的 UTF-8 编码问题 1 W- w$ T7 R' g% N8 f( T
3 ~8 T- t6 U6 D, o' g9 \
一.HTML 页面转 UTF-8 编码问题
6 J( y$ L# }6 E' T! v; R* p* s
1.在后,之间有中文字符的话, 显示的标题有可能是乱码!
" _. Q( Y7 D( A! \$ o
2.html 文件编码问题:# Z) }" j) W8 ]
点击编辑器的菜单: “文件”->“另存为” ,可以看到当前文件的编码,确保文件编码为: UTF-8,如果是 ANSI,需要将编码改成:UTF-8。2 ~4 u# ]: ^; u" }( q# ]
W: j3 ~, y7 V6 u
3.
HTML 文件头 BOM 问题: 将文件从其他的编码转换成 UTF-8 编码时,有时候会在文件的最开始加上一个 BOM 标签, 在个 BOM 标签可能会导致浏览器在显示中文的时候出现乱码。% P&; C5 x' A* k3 ]1 R9 W
4 Q7 l M" B1 ?" n6 j; i
删除这个 BOM 标签的方法:
9 v1 z$ D: r3 Z% ~: w$ j4 c
1.可以用 Dreamweaver 打开文件,并重新保存,即可以去除 BOM 标签!
! w2 R/ Q% Q- c
2.可以用 EditPlus 打开文件,并在菜单“首选项”->“文件”->"UTF-8 标识",设置为: “总 是删除签名” ,然后保存文件,即可以去除 BOM 标签!
) s c3 c' f- {1 ?+ y3 o! n. b
4.WEB 服务器 UTF-8 编码问题:2 b4 R2 n# @# j4 B6 y&; O
如果你按以上所列的步骤做了,还是有中文乱码问题,请检查你的所使用的 WEB 服务器的 编码
问题 - {. B/ M" M4 X! ^$ `( [6 y
如果你使用的是 Apache,请将配置文件里的:charset 设成:utf-8(这里仅列出方法,具体格 式请参考 apache 的配置文件)。
4 m: [* T7 p$ E; @
如 果 你 使 用 的 是 Nginx , 请 将 nginx.conf 里 的 : charset 设 成 utf-8 , 具 体 找 到 "charset gb2312;"或者类似的语句,改成: “charset utf-8;” ; ~8 g7 D1 Q# T0 P! H( R' J 。
UTF二.PHP 页面转 UTF-8 编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8");/ ]9 d" {4 c+ I4 A 2.PHP 文件编码问题) b6 t+ ?! D9 L; M1 z' Q5 |/ B 点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为: UTF-8,如果是 ANSI,需要将编码改成:UTF-8。6 ^5 T! H y. O' \ 3.PHP 文件头 BOM 问题:0 H&; u%
x8 E2 y+ H) q; e PHP 文件一定不可以有 BOM 标签, 否则, 会出现 session 不能使用的情况, 并有类似的提示: :
h6 e* z7 Z. h3 _" N: i&; S
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent5 a- A: \5 v0 M. `: _; h" N6 w! _ 这是因为,在执行 session_start() 的时候,整个页面不能有输出,但是当由于前 PHP 页 面存在 BOM 标签,PHP 把这个 BOM 标签当成是输出了,所以就出错了! 所以 PHP 页面一定要删除 BOM 标签 3 y% y7 Y8 B- R, r/ G+ l 删除这个 BOM 标签的方法:* u4 w&; k' k&; a1 Z 1.可以用 Dreamweaver 打开文件,并重新保存,即可以去除 BOM 标签! 2.可以用 EditPlus 打开文件,并在菜单“首选项”->“文件”->"UTF-8 标识",设置为: “总是删除签名”,然后保存文件,即可以去除 BOM 标签! 4.PHP 以附件形式保存文件的时候,UTF-8 编码问题:; H" f) z- }4 k&; E% e7 r PHP 以附件形式保存文件,文件名必须是 GB2312 编码,否则,如果文件名中有中文的话, 将是显示乱码:# ?; Q&; C, x% R; l. M# V' f9 | 如果你的 PHP 本身是 UTF-8 编码格式的文件,需要将文件名变量由 UTF-8 转成 GB2312:8 }!
a$ I$ K" G% Q3 j
iconv("UTF-8", "GB2312", "$filename"); 5.截断显示文章标题时,出现乱码或者“?”问号的问题