項目中用到Oracle,服務器端使用AMERICAN_AMERICA.WE8ISO8859P1字符編碼,我沒有修改服務器端的權限,只能修改客戶端.但是客戶端無論我換什麼字符編碼均得到亂碼,最後我將客戶端的字符編碼也設為AMERICAN_AMERICA.WE8ISO8859P1,然後從程序中下手.
AMERICAN_AMERICA.WE8ISO8859P1,這個字符編碼是西歐字符編碼,對應於.Net的就是iso-8859-1字符編碼,所以只需要改到系統的默認字符編碼就行了.
寫一個函數:
/**//// <summary>
/// 將西歐字符編碼轉換成GB2312
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string Convert8859P1ToGB2312(string s)
{
return System.Text.Encoding.Default.GetString(System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(s));
}