在寫代碼中有時使用方法不當造成亂碼確實有點煩人,
長沙做網站技術人員在一個項中需要讀取XML文件中所有的值,寫了如下代碼:
//讀取XML文件所有值
public static string GetXml(string fileName, string savePath)
{
string strfile = "";
StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath(savePath + "/" + fileName + ".xml"), System.Text.Encoding.Default);
try
{
strfile = sr.ReadToEnd();
sr.Close();
}
catch
{
}
return strfile;
}
在代碼中調用此函數string str=GetXml("request","Cachxml")讀取到的值只要是出現中文的地方就是亂碼。部分技術人員以為問題出現在strfile = sr.ReadToEnd()上。以做網站技術人員的經驗,這肯定出現在StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath(savePath + "/" + fileName + ".xml"), System.Text.Encoding.Default);此段代碼引起的亂碼問題。經測試把System.Text.Encoding.Default改System.Text.Encoding.GetEncoding("utf-8")既解決了亂碼問題。
以上內容的數據截止于2013年3月,請以原書內容為準,未經授權許可,嚴禁復制轉載引用!如需使用,請聯(lián)系長沙
做網站湘龍工作室,鏈接地址:
http://www.menbi.cn/zwzzs/StreamReader-174/。