中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法
2008-05-03 17:18
453 查看
/*FROM:http://blog.joycode.com/hopeq/archive/2005/09/26/64146.aspx*/
有一个Web项目,Web.Config中requestEncoding和responseEncoding都是gb2312,而从数据库中取出的简介数据可能是中文和韩、日文混合的内容,这时候如果直接输出到页面上,其页面会出现乱码,其中的韩文内容无法正确显示。当然如果项目的编码都使用Utf-8的话将没有这个问题,但这个项目是一个老项目,为了尽量不要影响已有的程序,所以无法将编码改为Utf-8,只能在本页面上动脑筋。
经过研究,发现这个问题可以通过Html实体的方法解决。
对于Html实体请参考:
Character entity references in HTML 4
HTML Document Representation
测试代码:
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以上。
这个方法仅仅是为了解决小范围问题,如果各位有更好的办法请指教。
有一个Web项目,Web.Config中requestEncoding和responseEncoding都是gb2312,而从数据库中取出的简介数据可能是中文和韩、日文混合的内容,这时候如果直接输出到页面上,其页面会出现乱码,其中的韩文内容无法正确显示。当然如果项目的编码都使用Utf-8的话将没有这个问题,但这个项目是一个老项目,为了尽量不要影响已有的程序,所以无法将编码改为Utf-8,只能在本页面上动脑筋。
经过研究,发现这个问题可以通过Html实体的方法解决。
对于Html实体请参考:
Character entity references in HTML 4
HTML Document Representation
测试代码:
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编码的Aspx的处理方法
- 中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法
- 中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法
- 有关mysql中文编码错误的一些处理方法
- zend studio 中文编码GB2312的乱码解决方法
- python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- 缺省配置下,用 Ubuntu 的文本编辑器(gedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码
- php中json_encode处理gbk与gb2312中文乱码问题的解决方法
- php json_encode不支持gbk gb2312编码的处理方法
- AJAX在GB2312的中文编码传输 AJAX特殊字符编码正确方法
- ISAPI_Rewrite伪静态中出现中文参数的处理方法
- STM32CubeMX处理UTF-8编码中文注释存在的问题及解决方法
- 【随笔记录】python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- 处理Get方法传递中文参数出现中文乱码的问题
- mindmanager9便笺中输入中文出现乱码的处理方法
- python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- spring mvc 4.x 版本在返回给ajax调用的json数据时候,出现中文显示???的处理方法
- php中json_encode处理gbk与gb2312中文乱码问题的解决方法
- python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法