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

编码|中文

/*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以上。

这个方法仅仅是为了解决小范围问题,如果各位有更好的办法请指教。

时间: 2024-08-24 00:14:20

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

PHP实例:PHP取GB2312编码字符串首字母的方法

<?php/** @author: zhuyubing@gmail.com*/$dict=array('a'=>0xB0C4,'b'=>0xB2C0,'c'=>0xB4ED,'d'=>0xB6E9,'e'=>0xB7A1,'f'=>0xB8C0,'g'=>0xB9FD,'h'=>0xBBF6,'j'=>0xBFA5,'k'=>0xC0AB,'l'=>0xC2E7,'m'=>0xC4C2,'n'=>0xC5B5,'o'=&g

PHP中GBK和UTF8编码处理(中文,韩文)

一.编码范围 1. gbk (gb2312/gb18030) x00-xff gbk双字节编码范围 x20-x7f ascii xa1-xff 中文 x80-xff 中文 2. utf-8 (unicode) u4e00-u9fa5 (中文) x3130-x318f (韩文) xac00-xd7a3 (韩文) u0800-u4e00 (日文) ps教程: 韩文是大于[u9fa5]的字符 正则例子: preg_replace("/([x80-xff])/","",$s

asp开发的网站(中文系统),在日文系统下 显示ascx部分都是乱码

问题描述 asp开发的网站(中文系统),在日文系统下显示ascx部分都是乱码奇怪的是在2台日文系统下装一台都显示正常一台乱码头大了 解决方案 解决方案二:编码问题,请用utf-8编码解决方案三:如果是编码问题怎么会一台机子可以一台乱码呢高手来顶下啊急啊解决方案四:如果是编码问题怎么会一台机子可以一台乱码呢高手来顶下啊急啊解决方案五:如果是编码的原因为什么一台可以一台乱码是不是在日问系统下要设置什么的啊IIS要设置什么吗高手来看下啊

ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明_应用技巧

出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面所以会乱码. 为了这个问题烦了我一个早上,终于的蓝色理想上得到解决. 首先让我们来了解一下Session对象提供了四个属性. 1.CodePage 读/写.整型. 定义用于在浏览器中显示页内容的代码页(Code Page).代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页.例如,ANSI代码页 1252用于美国

网站从GB2312编码到UTF-8编码

已有的网站是GB2312编码?看到UTF-8编码的优点有点心动?本文就是教你如何把网站从GB2312转为UTF-8. GB2312是简体中文的编码,所以当文章/网页中包含繁体中文.日文.韩文时,这些内容可能无法被正确编码. 有一种比GB2312编码略广的编码,就是GBK,它包含了对繁体中文的编码,但对他国非拉丁字母语言还是有问题. UTF-8编码是一种目前广泛应用于网页的编码,它其实是一种Unicode编码,即致力于把全球所有语言纳入一个统一的编码.目前UTF-8已经把几种重要的亚洲语言纳入,包

js下用gb2312编码解码实现方法_javascript技巧

需求 在js中将中文用gb2312编码.如,"我"编码后应该是"%CE%D2". 分析 大家知道,encodeURI和encodeURIComponent会用utf-8编码,如"我"编码后是"%E6%88%91".据实验,似乎没有参数指定编码的地方.只有另寻他法. 大致分析有如下几种解决方案: 1. 用js创建一个隐藏的iframe并指定其为gb2312编码,将需要转换的文本放到iframe的form的一个input中,将fo

Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)

ajax|xml|编码|解决 用XMLHTTP Post  Form时的表单乱码有两方面的原因--Post表单数据时中文乱码:服务器Response被XMLHTTP不正确编码引起的乱码.换句话说,本文主要解决两个问题--怎样正确Post中文内容&怎样正确显示得到的中文内容. Part I: Post中文内容 先看看E文的表单是怎么提交的: CODE:[Copy to clipboard]<SCRIPT language="JavaScript"> strA = &q

windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码

原文:windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码 关于silverlight和wp7(windows phone 7)是默认不支持gb2312解码的, 所以从网上下载的Html大部分都是乱码. 例如:http://news.sina.com.cn/s/2011-11-25/120923524756.shtml 下面是演示一个wp7程序 1 WebClient webClenet=new WebClient(); 2 webClenet.D

xmlhttp 乱码 比较完整的解决方法 (UTF8,GB2312 编码 解码)_AJAX相关

用XMLHTTP Post Form时的表单乱码有两方面的原因--Post表单数据时中文乱码:服务器Response被XMLHTTP不正确编码引起的乱码.换句话说,本文主要解决两个问题--怎样正确Post中文内容&怎样正确显示得到的中文内容. Part I Post中文内容 先看看E文的表单是怎么提交的: 复制代码 代码如下: <SCRIPT language="JavaScript">  strA = "submit1=Submit&text1=