新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 网页设计 > 网页相关 > 正文:中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法

中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法

新客网 XKER.COM 2008-09-21 来源: 收藏本文
有一个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  
收藏】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
【重要声明】:新客网刊载此文仅为提供更多信息的目的,并不代表新客网同意文章的说法或描述,也不构成任何建议,对本文有任何异议,请在上面提出建议。
  • 阅读排行
  • 推荐阅读
  • 随机推荐