1,在 mysql數據庫安裝目錄下找到my.ini文件,把default-character-set的值修改為 default-character-set=gb2312(修改兩處),保存,重新啟動。
2,找到asp.net文件的web.config文件,在</httpModules>標簽的后面添加<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
3,如果連接數據庫的字符串寫在web.config里面,則在連接字符串里面添加charset=gb2312(如:<add key="test" value="server=localhost;database=dbtest;uid=root;pwd=root;charset=gb2312"/>)
4,重新編譯。
有時還會遇到數據庫里面顯示的數據是中午,但讀取到頁面之后成了亂碼,而且在寫存儲工程的時候,有中文出現,編譯不會通過,我的解決方法是,我的解決方法是,把中文都轉化為十六進制,然后讀出來。代碼如下
Mysql:
drop procedure if exists proc_hm_holiday_top5;
create procedure proc_hm_holiday_top5()
begin
select *,(select userinfo_name from hm_userinfo where userinfo_id=holiday_uid) as username,
case
when holiday_type=1 and holiday_typeTwo=1 then _utf8 0xE8AFB7E581872FE79785E5818720
when holiday_type=1 and holiday_typeTwo=2 then _utf8 0xE8AFB7E581872FE4BA8BE5818720
when holiday_type=1 and holiday_typeTwo=3 then _utf8 0xE8AFB7E581872FE4B8A7E5818720
when holiday_type=1 and holiday_typeTwo=4 then _utf8 0xE8AFB7E581872FE5A99AE5818720
when holiday_type=1 and holiday_typeTwo=5 then _utf8 0xE8AFB7E581872FE4BAA7E5818720
when holiday_type=1 and holiday_typeTwo=6 then _utf8 0xE8AFB7E581872FE5B9B4E5818720
when holiday_type=1 and holiday_typeTwo=7 then _utf8 0xE8AFB7E581872FE585B6E4BB9620
when holiday_type=2 then _utf8 0xE58AA0E78FAD
when holiday_type=3 then _utf8 0xE587BAE5B7AE
when holiday_type=4 then _utf8 0xE7A7BBE4BC91
end
as holiday_class from hm_holiday where 1=1 order by holiday_addTime desc limit 5;
end;
C#代碼(將中文轉化為十六進制)
public string GetHexFromChs(string s)
{
if ((s.Length % 2) != 0)
{
s += " ";//空ge
}
System.Text.Encoding chs = System.Text.Encoding.GetEncoding("utf-8");
byte[] bytes = chs.GetBytes(s);
string str = "";
for (int i = 0; i < bytes.Length; i++)
{
str += string.Format("{0:X}", bytes[i]);
}
return str;
}
private void button1_Click(object sender, EventArgs e)
{
string shuru = textBox1.Text.Trim().ToString();
string str = GetHexFromChs(shuru);
textBox2.Text = str.Trim().Trim();
}
新聞熱點
疑難解答