IM嘗試改變柱爲utf8,但它不effectit,保持它顯示我UTF8字符的問號,這是我運行查詢:阿爾特字符列設置uf8不會影響它
alter table MY_TABLE change MY_COLUMN MY_COLUMN varchar(510) character set utf8;
它只工作,如果我把整個表改爲utf8 insted latin1,但我試圖做的是保持表爲拉丁文1和列utf8。任何想法爲什麼該查詢不會對列產生影響?
IM嘗試改變柱爲utf8,但它不effectit,保持它顯示我UTF8字符的問號,這是我運行查詢:阿爾特字符列設置uf8不會影響它
alter table MY_TABLE change MY_COLUMN MY_COLUMN varchar(510) character set utf8;
它只工作,如果我把整個表改爲utf8 insted latin1,但我試圖做的是保持表爲拉丁文1和列utf8。任何想法爲什麼該查詢不會對列產生影響?
混合字符集幾乎不是一個好主意。我建議任一:
BLOB
,然後使用/從柱插入數據原樣。OR
編輯:
有些是不混合字符集是個好主意的原因是這樣的:
說你是在一個字符串連接功能結合領域。 DBMS很可能會對使用什麼字符集感到困惑,並可能會嘗試將UTF8轉換爲Latin1,以達到量子效應。
如果您UNIONED
帶有utf8的非utf8字段,那麼DBMS可能會對如何解釋文本感到困惑。排序會意外地工作,因爲UTF8多字節字符以可打印的latin1字符集範圍之外的字節開始。例如:如果你有元組(「d」,「é」,「f」)[注意e上的重音符號],如果它們符合(「d」,「f」,「é」),解釋爲latin1字符串。
你能解釋一下嗎,你知道爲什麼它不影響列,爲什麼它不是一個好主意? – Jimmy 2011-05-04 16:54:13
最好指定你正在使用的數據庫後端,當然這不是t-sql代碼。 – HLGEM 2011-05-04 18:43:08