您的位置:首页 > Web前端 > JavaScript

帮助解决网页和JS文件中的中文编码问题的小工具

2007-04-11 20:08 741 查看

http://www.cnblogs.com/thinhunan/archive/2005/12/27/305590.aspx

帮助解决网页和JS文件中的中文编码问题的小工具

在JS文件中直接写入一些双字节字符,有时会引发javascript编码错误,在DateChooser控件中就出现过这样的问题,现在一般的较安全的解决方法是把中文字符串转换成类似于"/u5c0f/u5bd2"这样的形式写到JS文件中,下面的代码就是实现双字节的字符和Big endian Unicode之间的相互转换。




/**//// <summary>


/// 将双字节字符转化成能更好的在网页和JS中使用的BigEndianUnicode


/// </summary>


public abstract class Class2






{




public static void Main()






{


string test = "12,农民農民";


string entext = EncodingBigEndianUnicode(test);


WL(test);


WL(entext);


WL(DecodingBigEndianUnicode(entext));


RL();


}


public static string DecodingBigEndianUnicode(string encodedString)






{


System.Text.RegularExpressions.Regex regUnicode = new System.Text.RegularExpressions.Regex(@"//u(?<1>[a-zA-Z0-9]{2})(?<2>[a-zA-Z0-9]{2})");


System.Text.RegularExpressions.MatchCollection mc = regUnicode.Matches(encodedString);


string s = string.Empty;


foreach(System.Text.RegularExpressions.Match m in mc)






{


byte b1 = byte.Parse(m.Groups[1].Value,System.Globalization.NumberStyles.HexNumber);


byte b2 = byte.Parse(m.Groups[2].Value,System.Globalization.NumberStyles.HexNumber);




s += System.Text.Encoding.BigEndianUnicode.GetString(new byte[]

{b1,b2});


}


return s;


}




public static string EncodingBigEndianUnicode(string text)






{


string s = string.Empty;


for(int i = 0 ; i < text.Length ; i ++)






{


string s1 = text.Substring(i,1);


byte[] bs = System.Text.Encoding.BigEndianUnicode.GetBytes(s1);


s1 = @"/u";


foreach(byte b in bs)






{


string s2 = b.ToString("x");


if(s2.Length == 1)


s2 = "0" + s2;


s1 += s2;


}


s += s1;


}


return s;


}




Helper methods#region Helper methods




private static void WL(object text, params object[] args)






{


Console.WriteLine(text.ToString(), args);


}




private static string RL()






{


return Console.ReadLine();


}




private static void Break()






{


System.Diagnostics.Debugger.Break();


}




#endregion


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐