數據庫中的數據在不同的數據庫中轉換來裝換去,由於不同庫可能使用了不同的字符集,所以可能導致結果數據亂碼問題。此次是在一個作業中跑數據,跑完數據前台數據顯示出現亂碼,檢查了作業中的多有中間過程表,包括表輸入的預覽,表中的數據都是正常的,可想而知,問題肯定是處在“表輸入”到“表輸出”這個中間的轉換環節上,根據能想到的,應該是字符集問題,為了更有保障的“表輸入”和“表輸出”的字符集相同,所以在表輸入輸出中。都添加了字符集的配置參數characterEncoding,值為utf8,
utf8 和 UTF-8 的區別:
在使用中常常遇到utf-8和utf8,現在終於弄明白他們的使用不同之處了,現在來和大家分享一下,下面我們看一下utf8 和 UTF-8 有什么區別
“UTF-8”是標准寫法,php在Windows下邊英文不區分大小寫,所以也可以寫成“utf-8”。“UTF-8”也可以把中間的“-”省略,寫成“UTF8”。一般程序都能識別,但也有例外(如下文),為了嚴格一點,最好用標准的大寫“UTF-8”。
在數據庫中只能使用“utf8”(MySQL) 在MySQL的命令模式中只能使用“utf8”,不能使用“utf-8”,也就是說在PHP程序中只能使用“set names utf8(不加小橫杠)”,如果你加了“-”此行命令將不會生效,但是在PHP中header時卻要加上“-”,因為IE不認識沒杠的“utf8”,原因見下文。
PHP中的header:
<?php header('Content-Type: text/html; charset=UTF-8'); ?> //奇怪了:Content-Tyep用冒號,Chatset卻是等號。
靜態文件使用:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
總結:【只有在MySQL中可以使用“utf-8”的別名“utf8”,但是在其他地方一律使用大寫“UTF-8”。】
具體為:
在命令“mysql_query(set names utf8)”外一律用大寫“UTF-8”。