经过研究,发现这个问题可以通过Html实体的方法解决。
对于Html实体请参考:
Character entity references in HTML 4
测试代码:
Byte[] bComments = Encoding.UTF8.GetBytes("一ンブル????中文");
char[] cComments = Encoding.UTF8.GetChars(bComments);
StringBuilder charBuilder = new StringBuilder();
foreach(char c in cComments)
{
if(c > ’/u0800’)
{
charBuilder.Append("&#");
charBuilder.Append((int)c);
}
else
{
charBuilder.Append(c);
}
}
Response.Write(charBuilder.ToString());
这段代码的作用是将所有的中文、韩文、日文字符通过硬编码输出成为html实体。而Html实体是不受ResponseEncoding和页面编码集影响的。
说明:
/u0800 以上的为中、韩、日字符。
中文的范围:/u4e00 - /u9fa5,日文在/u0800 - /u4e00,韩文为/u9fa5以上。
这个方法仅仅是为了解决小范围问题,如果各位有更好的办法请指教。
本文介绍了一种解决中文、韩文及日文混合内容在GB2312编码下出现乱码的方法,通过将特殊字符转换为HTML实体来确保跨编码兼容性。
797

被折叠的 条评论
为什么被折叠?



