作者superlevin (軟體工程師)
看板Database
標題Re: [系統] MySQL Console (命令列) 上顯示中文
時間Sat Nov 18 16:45:51 2006
※ 引述《akamaru (Het leven is moeilijk.)》之銘言:
: 資料庫名稱: MySQL
: 資料庫版本: 5.0
: 作業平台: Win XP
: 問題描述:
: 用Php query出來資料庫裡面的中文資料是沒問題
: PhpMyAdmin輸入輸出也都okay
: 但是如果我想用console來看資料的話都會出現一堆 問號 (????)
: 用console輸入中文也會出現亂碼
: 請問要如何解決這個問題?
由於MySQL 4.1以上預設是以utf-8作為內部儲存/比對方式,
所以如果像以前直接塞資料的話, 那就會變亂碼. 解決方式是, 在一進命令列時輸入:
SET NAMES big5;
之後, 就可以用BIG5編碼的中文塞資料, select也看得到正常的字元
但如果用mysql本身的字串相關函數, 比如取得字串長度, 則必須注意.
比如在資料表x裡y欄位有一筆資料"AH-285之戀", 要算它的長度, 在之
前是用以下的query:
select length(y) from x;
不過答案卻變成12---因為在utf-8裡, 一個中文字用掉3個byte. 所以在
使用字串函數之前, 必須先轉碼再用:
select length(convert(y using big5)) from x;
答案就會是10. 其他函數則照這個樣子試試看.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 222.250.33.195
1F:推 akamaru:謝謝你 可以看了 :) 但有沒有辦法讓他直接預設顯示中文? 11/18 22:15