- 論壇徽章:
- 0
|
你隨便建立一個(gè)數(shù)據(jù)庫(kù),然后將如下表、視圖、數(shù)據(jù)導(dǎo)入,然后再導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)檢查導(dǎo)出的文件[/b]中英文顯示是否正常。我將my.ini文件 數(shù)據(jù)庫(kù) 表等字符集設(shè)為latin1 gb2312 gbk utf8 等均有不能正常顯示的現(xiàn)象。本來(lái)使用latin1字符集 插入中文 顯示中文數(shù)據(jù)庫(kù)均沒(méi)問(wèn)題,但是后來(lái)建立了視圖,as后面的中文導(dǎo)出也沒(méi)問(wèn)題,但有一個(gè)表的字段(czy.leve)是數(shù)字 我需要在視圖中將其轉(zhuǎn)換為中文顯示 所以加了if條件,沒(méi)想到的是 無(wú)論怎樣設(shè)字符集 當(dāng)導(dǎo)出數(shù)據(jù)庫(kù)后 這個(gè)視圖中的if中的中文均顯示為`????` 如下蘭字處是導(dǎo)出后的效果,但將數(shù)據(jù)庫(kù)設(shè)為utf8時(shí) 這個(gè)視圖導(dǎo)出中文顯示沒(méi)問(wèn)題 但其它漢字顯示或英文字段名顯示就有問(wèn)題,反正視圖中if條件正常了,就有的地方不正常。
if((`czy`.`leve` = 1),
_utf8'?????',
if((`czy`.`leve` = 2),
_utf8'?????',
_utf8'?????')) AS `級(jí)別`
其中utf8是我修改數(shù)據(jù)庫(kù)字符集造成的 大家可以隨便更改字符集。
求教如何設(shè)置數(shù)據(jù)庫(kù)字符集 或加什么參數(shù)導(dǎo)出數(shù)據(jù)庫(kù) 不出現(xiàn)以上問(wèn)題,大家在你的機(jī)器上試試。我原以為mysql5.10版本的問(wèn)題 結(jié)果更換了5.0.22也是如此。
drop table if exists `czy`;
CREATE TABLE `czy` (
`czycode` char(4) NOT NULL,
`czyname` varchar(30) default null,
`leve` tinyint(1) default NULL,
PRIMARY KEY (`czycode`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
drop VIEW if exists `view_czy`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_czy` AS
select
`czy`.`czycode` AS `代碼`,
`czy`.`czyname` as `姓名`,
if((`czy`.`leve` = 1),
'操作員',
if((`czy`.`leve`=2),
'出納員',
if((`czy`.`leve`=9),
'管理員','其它'))) AS `級(jí)別`
from
`czy`
order by
`czy`.`czycode`;
INSERT INTO `czy` (`czycode`, `leve`, `czyname`) VALUES
('0000',1,'李三'),
('0001',2,'李四'); |
|