歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 23, 2024, 02:07:20 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  求救!資料庫中文字變問號 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 求救!資料庫中文字變問號  (閱讀 22716 次)
stupidkid
新手見習
*
文章: 3


檢視個人資料
« 於: 十月 29, 2007, 09:18:46 上午 »

主機環境:
B2D server
PHP 5.2.0-8
Apache 2.2.3
mysql 5.0.32
資料庫使用utf8編碼

症狀:
中文字顯示沒問題,可是在phpmyadmin裡看,中文字都變成問號(見圖),請問有辦法解決嗎?
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 十一月 02, 2007, 02:36:27 下午 »

資料庫編碼分為很多部份 ...

1. default_character_set

2. collation_character_set

.... 其他

其中只要有一部分不是utf-8 都可能造成再 mysql 中看起來是亂碼。

你沒辦法透過直接更改設定去解決這個問題,為二的方法是:

1. 修改 phpmyadmin 程式,然後硬要他顯示中文
2 先把 db export (dump) 出來,然後重新設定資料庫 character set,再開一個空的資料庫,再 import 進去

Mark
已記錄

stupidkid
新手見習
*
文章: 3


檢視個人資料
« 回覆文章 #2 於: 十一月 06, 2007, 02:02:42 下午 »

謝謝markwu的回覆

現在phpmyadmin中的資料已可正常顯示中文
但是網頁卻成了亂碼.......
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 十一月 06, 2007, 03:39:50 下午 »

因為 lifetype 的 config.properties.php 也要一併修改。

把default-chararacter-set 改為 utf8 後,應該就正常了。

Mark
已記錄

liuangus
新手見習
*
文章: 9


檢視個人資料
« 回覆文章 #4 於: 十一月 06, 2007, 10:47:50 下午 »

因為 lifetype 的 config.properties.php 也要一併修改。

把default-chararacter-set 改為 utf8 後,應該就正常了。

Mark

為了搞資料庫這個東西, 剛好在前幾天也搞得頭昏眼花
網路上有看到一些文章蠻好, 像是這一篇寫的很完整, 給大家咪一下
http://plog.longwin.com.tw/my_note-plog/2006/12/27/lifetype_upgrade_106_113_2006

搞過之後,終於把資料庫變成"完美utf8"
但是記得在查資料的時候有影到某一篇,說是用這樣的"utf8",是不是某些外國人來看會變成亂碼
後來已經找不到那篇,算了..
已記錄
stupidkid
新手見習
*
文章: 3


檢視個人資料
« 回覆文章 #5 於: 十一月 07, 2007, 02:21:36 下午 »

我的步驟如下:

檢查config.properties.php,確定$config['db_character_set'] = 'utf8'

mysqldump -u root -p lifetype > test.sql

test.sql裡的中文是正常的,檢查編碼是utf8沒錯,開頭有一堆內容如下:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


在phpmyadmin裡新開一個資料庫,校對選擇utf8_unicode_ci,將test.sql匯入,結果中文字為『???』,但網頁顯示正常;
如果將開頭那一些內容拿掉,結尾也有類似的內容也拿掉之後,存檔後再將test.sql匯入,則phpmyadmin裡中文顯示正常,但網頁顯示為亂碼。

以前有遇過類似的問題,網頁和phpmyadmin顯示一邊正常,另一邊是問號,但那是phpmyadmin的問題,修正後就正常,這次真的是不知道如何是好了。

救狼喔~~~
« 最後編輯時間: 十一月 07, 2007, 02:27:22 下午 由 stupidkid » 已記錄
頁: [1]
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  求救!資料庫中文字變問號 « 上篇主題 下篇主題 »
    前往: