[問題]又是亂碼

phpMyAdmin Running Discuss
關於 phpMyAdmin 架設使用操作討論,非本程式相關問題一律砍文!

版主: 版主管理群

回覆文章
s255010
星球普通子民
星球普通子民
文章: 2
註冊時間: 2009-07-18 13:31

[問題]又是亂碼

文章 s255010 »

●主機作業系統:Windows XP
●快速架站程式:XAMPP v1.7.1
●您的上網方式:ADSL(SeedNet)

雖然剛剛爬過文章,但是小弟還想更清楚了解亂碼。

小弟的test資料庫及test資料表、欄位中的編碼、校對全都設成utf8_unicode_ci。
小弟自己打了個test.txt(UTF8)然後用phpMyAdmin的匯入功能,以CSV、LOAD DATA匯入內含中文的資料(人名):從phpMyAdmin中看是正常。
小弟是自己練習PHP+MySQL,我的test.php中已有<meta content="charset=utf-8" />,所以載入時會自動變成UTF8。

可是小弟在php鐘用SELECT語法讀出來時姓名卻變成亂碼(三個?)?
另外,若用INSERT語法從PHP插入資料到MySQL,則在phpMyAdmin中顯示為亂碼,但用SELECT讀出時正常?

以下附上"資訊"中的內容:
a.PNG
小弟爬文時有看到說在my.ini中的[mysqld]、[client]下都加入default-character-set = utf8,但還是不行;
另外,小弟有看到修改DB.php,但是必須在安裝資料庫時進行,有沒有其他方法?

簡而言之,前台對、後台不對,不然就是後台對、前台不對,可是我都設成utf8_unicode_ci了啊!
上圖中仍可見到許多latin,是不是因此錯誤?或是說是因哪一個latin造成錯誤?
若是修改my.ini,可以明顯發現:character set client、character set connection、character set results下的(整體值)都不見了,而後面的值也多有修改:
b.PNG
可是有些卻改成了utf8_general_ci,而小弟希望改成utf8_unicode_ci。[/b]
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: [問題]又是亂碼

文章 心靈捕手 »

s255010 寫:●主機作業系統:Windows XP
●快速架站程式:XAMPP v1.7.1
●您的上網方式:ADSL(SeedNet)

雖然剛剛爬過文章,但是小弟還想更清楚了解亂碼。

小弟的test資料庫及test資料表、欄位中的編碼、校對全都設成utf8_unicode_ci。
小弟自己打了個test.txt(UTF8)然後用phpMyAdmin的匯入功能,以CSV、LOAD DATA匯入內含中文的資料(人名):從phpMyAdmin中看是正常。
小弟是自己練習PHP+MySQL,我的test.php中已有<meta content="charset=utf-8" />,所以載入時會自動變成UTF8。

可是小弟在php鐘用SELECT語法讀出來時姓名卻變成亂碼(三個?)?
另外,若用INSERT語法從PHP插入資料到MySQL,則在phpMyAdmin中顯示為亂碼,但用SELECT讀出時正常?

以下附上"資訊"中的內容:
a.PNG
小弟爬文時有看到說在my.ini中的[mysqld]、[client]下都加入default-character-set = utf8,但還是不行;
另外,小弟有看到修改DB.php,但是必須在安裝資料庫時進行,有沒有其他方法?

簡而言之,前台對、後台不對,不然就是後台對、前台不對,可是我都設成utf8_unicode_ci了啊!
上圖中仍可見到許多latin,是不是因此錯誤?或是說是因哪一個latin造成錯誤?
若是修改my.ini,可以明顯發現:character set client、character set connection、character set results下的(整體值)都不見了,而後面的值也多有修改:
b.PNG
可是有些卻改成了utf8_general_ci,而小弟希望改成utf8_unicode_ci。[/b]
請壓縮後, 貼出您的 my.ini 檔.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
s255010
星球普通子民
星球普通子民
文章: 2
註冊時間: 2009-07-18 13:31

Re: [問題]又是亂碼

文章 s255010 »

my.ini.zip
(2.25 KiB) 已下載 685 次
其實上面檔案小弟什麼也沒動,都是預設值。

其實後來問題已解決,只是敝人仍想知道為什麼,以及每行敘述的功用。
小弟後來在以下區段加入了以下敘述:

[client]
set-variable = character_set_client=utf8
set-variable = character_set_results=utf8

default-character-set=utf8


[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci

#set-variable = character_set_database=utf8
#set-variable = collation_database=utf8_unicode_ci
character-set-filesystem=utf8
init_connect="SET NAMES utf8"
default-character-set = utf8


[mysql]
set-variable = character_set_connection=utf8
set-variable = collation_connection=utf8_unicode_ci

default-character-set=utf8

就可以正常了。
每個區段的前兩行小弟都大概了解功能,是分別設定客戶端/伺服器端/連接端的字碼/連線校對為utf8/utf8_unicode_ci;
不明白的是:
1.連線校對是什麼?
2.其他的敘述是?
3.註解(#)掉的兩行理應是設定資料庫的字碼/連線校對為utf8/utf8_unicode_ci,但看過使用手冊說"不能手動設定,只能由MySQL自動設定"?
4.另外,有些需要"set variable"有些不用,看書得之調整伺服器的方法有"選項"和"變數",選項有選項的名稱(用-表示空格),變數有變數的名稱(用_表示空格),請問這兩個差在哪?
回覆文章

回到「phpMyAdmin」