偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL+PHP亂碼的產(chǎn)生緣由與實(shí)際解決方案

數(shù)據(jù)庫(kù) MySQL
我們今天主要向大家介紹的是MySQL+PHP亂碼的產(chǎn)生緣由與解決MySQL+PHP亂碼的實(shí)際操作方案,以下就是文章的主要內(nèi)容描述。

此文章主要向大家闡述的是MySQL+PHP亂碼的產(chǎn)生緣由與實(shí)際解決方案,以及在實(shí)際操作中值得我們大家注意的相關(guān)事項(xiàng)的描述,假如你對(duì)MySQL+PHP亂碼的相關(guān)內(nèi)容有興趣了解的話,你就可點(diǎn)擊以下的文章了。

MySQL+PHP產(chǎn)生亂碼原因:

MySQL數(shù)據(jù)庫(kù)默認(rèn)的編碼是utf8,如果這種編碼與你的PHP網(wǎng)頁(yè)不一致,可能就會(huì)造成MySQL亂碼;

MySQL中創(chuàng)建表時(shí)會(huì)讓你選擇一種編碼,如果這種編碼與你的網(wǎng)頁(yè)編碼不一致,也可能造成MySQL亂碼;

MySQL創(chuàng)建表時(shí)添加字段是可以選擇編碼的,如果這種編碼與你的網(wǎng)頁(yè)編碼不一致,也可能造成MySQL亂碼;

用戶提交頁(yè)面的編碼與顯示數(shù)據(jù)的頁(yè)面編碼不一致,就肯定會(huì)造成PHP頁(yè)面亂碼;

如用戶輸入資料的頁(yè)面是big5碼, 顯示用戶輸入的頁(yè)面卻是gb2312,這種100%會(huì)造成PHP頁(yè)面亂碼;

PHP頁(yè)面字符集不正確;

PHP連接MySQL數(shù)據(jù)庫(kù)語(yǔ)句指定的編碼不正確。

注意:

很多人都懷疑MySQL版本不一致會(huì)導(dǎo)致亂碼,相信看了本說(shuō)明你就不會(huì)這樣認(rèn)為了。

平時(shí)你在某些網(wǎng)站看到的文字可能有幾種編碼, 如你看到一個(gè)繁體字,它有可能是big5編碼,也有 可能是utf-8編碼的,更有可能是gb碼的,沒(méi)錯(cuò),也就是說(shuō)有簡(jiǎn)體編碼的繁體字,也有繁體編碼的簡(jiǎn)體字,一定要了解這一點(diǎn)。

如果你是做一個(gè)簡(jiǎn)體編碼的網(wǎng)頁(yè),編碼定為GB2312,如果有香港和臺(tái)灣地區(qū)的訪客提交繁體的信息,就可能會(huì)造成亂碼,解決方法:

將網(wǎng)站編碼設(shè)為 utf-8,這樣可以兼容世界上所有字符。

如果網(wǎng)站已經(jīng)運(yùn)作了好久,已有很多舊數(shù)據(jù),不能再更改簡(jiǎn)體中文的設(shè)定,那么建議將頁(yè)面的編碼設(shè)為 GBK, GBK與GB2312的區(qū)別就在于:GBK能比GB2312顯示更多的字符,要顯示簡(jiǎn)體碼的繁體字,就只能用GBK。

使用MySQL+PHP產(chǎn)生亂碼的原因都了解得很清楚了,那么解決就不困難了。

MySQL+PHP產(chǎn)生亂碼的解決辦法:

如果安裝MySQL的編碼已不能更改,很多朋友是購(gòu)買虛擬主機(jī)建立網(wǎng)站,無(wú)權(quán)更改MySQL的安裝編碼,這一關(guān)我們可以跳過(guò),因?yàn)橹灰竺娴牟骄壅_,一樣能解決亂碼問(wèn)題。

修改數(shù)據(jù)庫(kù)編碼,如果是數(shù)據(jù)庫(kù)編碼不正確,可以在PHPmyadmin 執(zhí)行如下命令:

 

  1. ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin  

以上命令就是將test數(shù)據(jù)庫(kù)的編碼設(shè)為utf8。

修改表的編碼:

 

  1. ALTER TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin  

以上命令就是將一個(gè)表category的編碼改為utf8。

修改字段的編碼:

 

  1. ALTER TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL  

以上命令就是將test表中dd的字段編碼改為utf8。

如果是這種情況容易解決,只需檢查下頁(yè)面,修改源文件的charset即可。

這種情況也是修改頁(yè)面charset即可。

在連接數(shù)據(jù)庫(kù)的語(yǔ)句中。

  1. mysql_connect('localhost','user','password'); mysql_select_db('my_db'); mysql_query("set names utf8;");  

select 數(shù)據(jù)庫(kù)之后加多這一句

為了避免PHP頁(yè)面亂碼的發(fā)生,PHP頁(yè)面開始***句

  1. header("content-type:text/html; charset=utf-8");  

強(qiáng)行指定頁(yè)面的編碼,以避免亂碼

注意:照以上方法修改以后只能保證你新插入的數(shù)據(jù)不會(huì)亂碼,舉個(gè)例:如果你用戶已提交的數(shù)據(jù)是BIG5,你卻想通過(guò)以上方法改為可以在GB2312的網(wǎng)頁(yè)正確顯示是不可能的, 這種文字內(nèi)碼的變換只能通過(guò)另寫程序來(lái)解決。

原文標(biāo)題:MySQL+PHP亂碼原理與解決

連接:http://www.cnblogs.com/buffer/archive/2010/01/29/1659348.html

【編輯推薦】

  1. 啟動(dòng)與關(guān)閉MySQL的一大絕招
  2. MySQL免安裝版-添加服務(wù)實(shí)操演示
  3. MySQL數(shù)據(jù)庫(kù)中的自動(dòng)備份破壞后的建立
  4. 在win 2003 下對(duì)忘記MySQL root密碼的修復(fù)方案
  5. mssql轉(zhuǎn)換為MySQL數(shù)據(jù)庫(kù)經(jīng)驗(yàn)漫談
     
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-02-25 15:39:15

亂碼原理MySQL

2010-05-31 18:33:00

MySQL中文亂碼

2010-05-20 10:00:58

MySQL 中文亂碼

2010-05-04 09:34:18

Oracle em

2010-05-31 10:45:09

MySQL+tomca

2010-04-28 11:48:13

Oracle MySQ

2010-05-17 14:49:43

MySQL中文亂碼

2009-11-30 11:01:20

MySQL與PHP產(chǎn)生

2010-05-17 14:17:25

MySQL pytho

2010-05-25 18:12:19

MySQL 安裝

2024-11-08 13:47:35

中文亂碼配置

2010-05-12 16:47:54

MySQL 中文亂碼

2010-04-30 17:33:27

Oracle數(shù)據(jù)集成

2010-05-25 11:24:34

MySQL 亂碼

2011-12-21 14:46:26

JavaJFreeChart

2010-04-20 11:56:30

Oracle物理結(jié)構(gòu)故

2010-07-13 16:36:07

SQLServer占內(nèi)

2010-06-12 13:33:12

MySQL連接池

2010-05-18 14:00:46

MySQL5.0中文問(wèn)

2010-02-24 14:05:08

WCF openati
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)