天道酬勤,学无止境

How to use C# encode and decode 'Chinese' characters

In my ASP.NET MVC application i am using Chinese Category Name, it was displayed as %E8%82%B2%E5%84%BF in IE's URL address, but the actual value is '育儿'.

I want to know how can I convert '育儿' into %E8%82%B2%E5%84%BF in C# and how can I convert it back, too. Is it possible display '育儿' in the URL link directly? Will it be good for SEO?

评论

The text displayed in IE's address bar is the URL encoded form of the hex version of those characters. The hex version of '育儿' encoded in UTF-8 is E882B2E584BF:

byte[] buffer = new byte[] { 0xE8, 0x82, 0xB2, 0xE5, 0x84, 0xBF };
string s = Encoding.UTF8.GetString(buffer);

s is equal to '育儿'.

You shouldn't transmit the straight chinese characters in the URL, it should be URL encoded using HttpServerUtility.UrlEncode and UrlDecode.

HttpUtility.UrlEncode will encode a URL, and HttpUtility.UrlDecode will change it back.

Example:

string orig = "http://example.com/育儿";
string encoded = HttpUtility.UrlEncode(orig);
// encoded should equal "http://example.com/%E8%82%B2%E5%84%BF"

Did you check to make sure that you are using the Unicode encoding (instead of the Default)? Default encoding will not handle Chinese characters.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 将汉字转换为Unicode(Converting chinese character to Unicode)
    问题 假设我有一个随机的汉字玩。 我想将其转换为Unicode,即U + 73A9。 我该如何在C#中做到这一点? 回答1 将myChar作为引用您的特殊字符的char ... Console.WriteLine("{0} U+{1:x4} {2}", myChar, (int)myChar, (int)myChar); 上面我们输出的是字符本身,其后是Unicode代码点,然后是整数值。 减少格式字符串和参数以仅输出“ U + ...”代码... Console.WriteLine("U+{0:x4}", (int)myChar); 回答2 字符是Unicode。 如果您在C#中将其作为“玩”使用,则当前它在UTF-16中,这是Unicode编码形式之一。 如果要从其他地方获取它,则需要: 找到它的编码。 获取字节(由流包装是不错的)。 获取编写适当的编码器的信息。 使用编码器获取字符串(用textreader封装漂亮的流会更好)。 步骤3可能很简单(哦,我只用那个!),或者很辛苦(该死,必须自己写!)或介于两者之间(嘿,有人已经写过其中之一了吗?!) 回答3 稍长一些的示例,遵循Jon Hanna的回答中的模式: using System; using System.Collections.Generic; using System.Linq; using System
  • c# json 汉字乱码_C#读取中文文件出现乱码的解决方法
    本文实例讲述了C#读取中文文件出现乱码的解决方法。分享给大家供大家参考。具体分析如下: 先来看这段代码: FileStream aFile = new FileStream(SingleFile,FileMode.Open); StreamReader sr = new StreamReader(aFile,Encoding.GetEncoding("gb2312"),true); string FileContent = sr.ReadToEnd(); aFile.Close(); ProcessData Pd = new ProcessData(); Pd.ProceData(FileContent); StreamReader 使用3个参数 最后一个自动检测utf-8,中文大部分是gb2312,如果不是utf-8,就用gb2312 系统自带utf 检测 ,见如下: private void DetectEncoding() { if (this.byteLen >= 2) { this._detectEncoding = false; bool flag = false; if ((this.byteBuffer[0] == 0xfe) && (this.byteBuffer[1] == 0xff)) { this.encoding = new UnicodeEncoding
  • C#SmtpClient编程中如何设置附件文件名带汉字?(How to set the attatchment file name with chinese characters in C# SmtpClient programming?)
    问题 我的代码如下: ContentType ct = new ContentType(); ct.MediaType = MediaTypeNames.Application.Octet; ct.Name = "这是一个很长的中文文件名希望能用它在附件名中.Doc"; Attachment attach = new Attachment(stream, ct); 但是收到的附件没有正确的中文文件名,我发现 ct.Name 变成了 "=?utf-8?B?6L+Z5piv5LiA5Liq5b6I6ZW/55qE5Lit5paH5paH5Lu25ZCN5biM5pyb?=\r\n =?utf-855DZ6Z5Z6Z6BZ =" 在 VS2010 调试器中。 请建议,我如何在附件文件名中使用中文字符? 回答1 你能试一下吗: Attachment att = new Attachment(@"c:\path to file\somename.txt", System.Net.Mime.MediaTypeNames.Application.Octet); //this itself should work. att.Name = "история-болезни.doc"; // non-english filename //if the above line doesn't make
  • 为什么我的中文字符在c#字符串中显示不正确(Why are my Chinese characters not displayed correctly in c# string)
    问题 我在SQL Server 2005数据库中存储中英文文本并在网页上显示,但中文显示不正确。 我一直在阅读有关该主题的内容并已完成以下操作: 在我的 INSERT 语句中的文本之前使用了 N 将字段类型设置为 nvarchar 将页面的字符集设置为 UTF-8 将汉字直接插入页面时,即不从数据库中获取汉字,在页面中显示正确 These are the characters that should be displayed:全澳甲流确诊病例已破100 这是从数据库中检索文本时显示的内容:全澳甲æµç¡®è¯Šç—…ä¾‹å·²ç ´1001 这似乎与c#中如何处理字符串有关,因为在经典asp中可以正确检索和显示中文 我还需要做些什么才能将数据从数据库中提取到字符串中并在 aspx 页面上正确输出? 回答1 到目前为止的信息是: 您正在使用直接 SQL INSERT 脚本插入到数据库中。 数据在数据库中出现损坏。 问题可能出在两个地方: 在您的 INSERT 语句中,您是否在插入值前添加了 N? INSERT INTO #tmp VALUES (N'全澳甲流案例已破100') 如果给值加上 N 前缀,String 对象是否保存了正确的数据? String sql = "INSERT INTO #tmp VALUES (N'" + value + "')"
  • Java 字符编码与解码
    Java的字符集编码与解码 1、字符编码的发展历程   ①、ASCII 码   因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间的数字来表示。比如 A 对应 65,a 对应 97。这便是 美国标准信息交换码,ASCII String str = new String("Aa"); byte[] strASCII = str.getBytes("ASCII"); System.out.println(Arrays.toString(strASCII));//[65, 97]      ②、GB2312 码   随着计算机在全球的普及,很多国家和地区都把自己的字符引入了计算机,比如汉字。此时发现一个字节能表示的数字范围太小,不能包含所有的中文汉字。那么就规定使用两个字节来表示一个汉字。   规定:原有的 ASCII 字符的编码保持不变,仍然使用一个字节表示,为了区别一个中文字符与两个 ASCII 码字符相区别。中文字符的每个字节最高位规定为 1(即中文的二进制是负数),这便是 GB2312 编码 String str = new String("Aa帅锅"); byte[] strASCII = str.getBytes("GB2312"); System.out.println
  • 如何编码和解码残破的中文/ Unicode字符?(How to encode and decode Broken Chinese/Unicode characters?)
    问题 我曾尝试使用Google搜索,但无法找到下面这段文字所属的字符集: å…·æ‰É›é›»ç“¢ç”Ÿè£ç½®ä¹‹å½±åƒè¼¸å…¥è£ç½® 但是将<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">并将该字符串保存到HTML文件中后,我能够正确地查看中文字符: 具有静电产生装置之影像输入装置 所以我的问题是: 我可以使用哪些工具来检测此文本的字符集? 以及如何在C#中正确转换/编码/解码它们? 更新:为了完整起见,我已经更新了此测试。 [TestMethod] public void TestMethod1() { string encodedText = "具有éœé›»ç”¢ç”Ÿè£ç½®ä¹‹å½±åƒè¼¸å…¥è£ç½®"; Encoding utf8 = new UTF8Encoding(); Encoding window1252 = Encoding.GetEncoding("Windows-1252"); byte[] postBytes = window1252.GetBytes(encodedText); string decodedText = utf8.GetString(postBytes); string actualText =
  • Java 字符编码与解码
    Java的字符集编码与解码1、字符编码的发展历程  ①、ASCII 码  因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间的数字来表示。比如 A 对应 65,a 对应 97。这便是 美国标准信息交换码,ASCII String str = new String("Aa"); byte[] strASCII = str.getBytes("ASCII"); System.out.println(Arrays.toString(strASCII));//[65, 97]    ②、GB2312 码  随着计算机在全球的普及,很多国家和地区都把自己的字符引入了计算机,比如汉字。此时发现一个字节能表示的数字范围太小,不能包含所有的中文汉字。那么就规定使用两个字节来表示一个汉字。  规定:原有的 ASCII 字符的编码保持不变,仍然使用一个字节表示,为了区别一个中文字符与两个 ASCII 码字符相区别。中文字符的每个字节最高位规定为 1(即中文的二进制是负数),这便是 GB2312 编码 String str = new String("Aa帅锅"); byte[] strASCII = str.getBytes("GB2312"); System.out.println(Arrays
  • Python中的汉字编码错误(Encoding error in Python with Chinese characters)
    问题 我是一个初学者,无法在 Python 2.7 中将几十个带有数字 +(简体)中文字符的 CSV 文件解码为 UTF-8。 我不知道输入文件的编码,所以我尝试了我知道的所有可能的编码——GB18030、UTF-7、UTF-8、UTF-16 和 UTF-32(LE 和 BE)。 此外,为了更好的衡量,GBK 和 GB3212,尽管它们应该是 GB18030 的子集。 当遇到第一个汉字时,UTF 会全部停止。 除了 GB18030 之外,其他编码在第一行的某个地方停止。 我认为这将是解决方案,因为它通读了前几个文件并很好地解码了它们。 我的部分代码,逐行阅读,是: line = line.decode("GB18030") 我尝试解码的前 2 个文件运行良好。 在第三个文件的中间,Python 吐出 UnicodeDecodeError: 'gb18030' codec can't decode bytes in position 168-169: illegal multibyte sequence 在这个文件中,大约一百万行中有大约 5 个这样的错误。 我在文本编辑器中打开了输入文件并检查了哪些字符给出了解码错误,前几个在 CSV 文件的特定列中都有欧元符号。 我相当有信心这些是错别字,所以我只想删除欧元字符。 我想一一检查编码错误的类型; 我想摆脱所有欧元错误
  • java io流文字乱码_Java之IO流读写乱码问题(字符编码)
    为什么IO流读写中可能会出现乱码问题?? ①编码和解码规则不一致 ②这个字符编码不支持某种语言(ex:中文) 那我们应该怎么去尽可能的避免出现乱码的情况呢?? 1.编码 : String ---> byte[] String中有对应的方法: ①:byte[] getBytes() : 使用平台的默认字符集将此 String 编码为 byte 序列 ②:byte[] getBytes(Charset charset) : 使用指定的字符编码来编码字符串 ③:byte[] getBytes(String charsetName) : 使用指定的字符编码来编码字符串 2.解码 : byte[] ---> String String中有对应的构造方法: ①:String(byte[] bytes) : 通过使用平台的默认字符集解码指定的 byte 数组 ②:String(byte[] bytes, Charset charset): 使用指定的字符集来解码指定的byte数组 ③:String(byte[] bytes, String charsetName) : 使用指定的字符集来解码指定的byte数组 字符编码:ex:有一个字 ==》需要 存储到磁盘 如何进行存储?? 常见字符编码: ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据
  • 深入理解Python字符编码
    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError、UnicodeDecodeError 错误,每当遇到错误我们就拿着 encode、decode 函数翻来覆去的转换,有时试着试着问题就解决了,有时候怎么试都没辙,只有借用 Google 大神帮忙,但似乎很少去关心问题的本质是什么,下次遇到类似的问题重蹈覆辙,那么你有没有想过一次性彻底把 Python 字符编码给搞懂呢? 完全理解字符编码 与 Python 的渊源前,我们有必要把一些基础概念弄清楚,虽然有些概念我们每天都在接触甚至在使用它,但并不一定真正理解它。比如:字节、字符、字符集、字符码、字符编码。 字节 字节(Byte)是计算机中数据存储的基本单元,一字节等于一个8位的比特,计算机中的所有数据,不论是保存在磁盘文件上的还是网络上传输的数据(文字、图片、视频、音频文件)都是由字节组成的。 字符 你正在阅读的这篇文章就是由很多个字符(Character)构成的,字符一个信息单位,它是各种文字和符号的统称,比如一个英文字母是一个字符,一个汉字是一个字符,一个标点符号也是一个字符。 字符集 字符集(Character Set)就是某个范围内字符的集合,不同的字符集规定了字符的个数,比如 ASCII 字符集总共有128个字符,包含了英文字母、阿拉伯数字
  • 程序中遇到乱码怎么办?这里有篇乱码恢复指北
    目录 什么编码? 长什么样? Windows-1252 GBK 和 Big5 Shift-JIS UTF-8 如何在各种编码中转换? 那么锟斤拷、烫烫烫、屯屯屯和锘锘锘呢? 所以…为什么水了这篇文? 附注:常见编解码错误表 需要恢复乱码的访客可使用此类服务,或参考下面的例子与您需要恢复的乱码进行对照。 本文尝试对各种乱码的特征进行描述,并给出在各种编码中转换的一些方案。 记得原来看到过一张很简明的关于乱码的解释图,不过找不到了。有那张图的同学希望能告诉我一下。 什么编码? 这里我们讨论最常见的几个:Windows-1252(CP-1252)、GBK(以及 GB2312。GBK 范围稍大且兼容 GB2312,故取此)、Big5(大五码,常用于繁体中文)、Shift-JIS(常用于日文)。 当然还有遍地开花的 UTF-8。 长什么样? 以下列举出各种编码的特征。不同编码服务于不同的文字类型,因此其字符表中的内容也不同,乱码的特征也不同。幸运的是,(半角)英文字符和数字通常不受影响,它们在这些编码中转换的时候不会出现问题。 Windows-1252 Windows-1252 大概是最好区分的。它是拉丁字母的编码,所以被以 Windows-1252 解码的结果是没有汉字的。只有以下内容: (图源:Wikimedia Commons) 另外,它与 ISO 8859-1 非常相似,也常有人把
  • python网址解码_Python使用urllib模块对URL网址中的中文编码与解码实例详解
    URL网址链接中的中文编码说明 中文的gbk(GB2312)编码: 一个汉字对应两组%xx,即%xx%xx 中文的UTF-8编码: 一个汉字对应三组%xx,即%xx%xx%xx 可以利用百度进行URL编码解码 默认gbk https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD python3编码解码示例 # -*- coding: utf-8 -*- # @File : urldecode_demo.py # @Date : 2018-05-11 from urllib.request import quote, unquote # 编码 url1 = "https://www.baidu.com/s?wd=中国" # utf8编码,指定安全字符 ret1 = quote(url1, safe=";/?:@&=+$,", encoding="utf-8") print(ret1) # https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD # gbk编码 ret2 = quote(url1, encoding="gbk") print(ret2) # https%3A//www.baidu.com/s%3Fwd%3D%D6%D0%B9%FA # 解码 url3 = "https://www.baidu.com
  • 【转】JavaWeb中文编码问题全面解析
    原文链接:https://zhuanlan.zhihu.com/p/34956391 需要编码的原因 计算机中存储的最小单元是一个字节,即8bit,所以能表示的字符范围是0~255个。人类要表示的符号太多,无法用一个字节来完全表示。要解决这个矛盾必须要有一个新的数据结构char,从char到byte必须编码。编码格式一般分为如下几种: ASCII ASCII码共有128个,用一个字节的低7位表示,0~31是控制字符,如换行、回车、删除等;32~126是打印字符,可以通过键盘输入并能够显示出来。ISO-8859-1128个字符显然是不够用的,ISO组织在ASCII码的基础上又制定了一系列标准用来扩展ASCII编码,他们是ISO-8859-1~ISO-8859-15,其中ISO-8859-1涵盖了大多数西欧语言字符,所以应用最广泛。ISO-8859-1任然是单字节编码,它总共能表示256个字符。GB2312它的全称是《信息交换用汉字编码字符集基本集》,它是双字节编码,总的编码范围是A1~F7,其中从A1~A9是符号区,总共包含682个字符。从B0~F7是汉字区,包含6763个汉字。GBK全称《汉字内码扩展规范》,为了扩展GB2312加入了更多的汉字,它的编码是和GB2312是兼容的,也就是说GB2312编码的汉字可以用GBK来解码,并且不会有乱码。GB18030是我国强制标准
  • C# 字符转码
    谈到这个问题,完全是因为使用sqilte 时,不支持中文路径。准确来讲不是不支持,二是只支持以UTF8编码格式的中文路径。相信很多朋友都碰到过这个问题。 google,百度一搜,全是这样的解决方案: string ikoktest = "测试"; byte[] utf8bytes = System.Text.Encoding.Default.GetBytes(ikoktest); ikoktest = System.Text.Encoding.UTF8.GetString(utf8bytes); 你认为编码转化了吗? 答案是:的确转化了。 但为什么还是不能打开数据库或者还是不对?! 调试,看看 ikoktest 变成什么值了:"????" 真正的乱码,谁都不认识。 再看看这段代码: string ikoktest = "娴嬭瘯"; byte[] utf8bytes = System.Text.Encoding.Default.GetBytes(ikoktest); ikoktest = System.Text.Encoding.UTF8.GetString(utf8bytes); 看看调试结果 ikoktest 是什么值: "测试" 明白了吗? 上面这段例子的真实用途是这样的,当一段字符本身是以UTF8编码方式编码的,但却以Default(通常是GBK或者GB2312)存储,显示
  • 需要了解的Python编码解码知识
    编码的发展历史最早的编码是美国发明的ASCII,ASCII编码占用1个字节,8个二进制位,最多能够表示2的8次方256个字符。随着计算机的发展,ASCII码已经不能满足世界人民的需求。因为世界各国语言繁多,字符远远超过256个。中国为了处理汉字,设计了GBK(GB2312)编码,它用16个比特位表示一个中文字符,所能表示的汉子个数2的16次方减一65535个,基本上涵盖了我们常用的汉字。Unicode编码,把所有语言都统一到一套编码里。Unicode规定字符最少使用2个字节表示,所以最少能够表示2的16次方=65536个字符。UTF-8是对Unicode编码的压缩和优化,它不再要求最少使用2个字节,而是将所有的字符和符号进行分类:ASCII码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。如果你要传输的文本包含大量英文字符,用UTF-8编码就能大大节省空间。目前,内存中一般使用的字符编码是Unicode,硬盘中使用的字符编码是UTF-8。如何理解编码与解码从内存(文本信息字符串)存到磁盘(二进制字节数据)的过程,称为编码。从磁盘(二进制字节数据)到内存(文本信息字符串)的过程的过程,称为解码。在计算机内存中统一使用Unicode编码,当保存到硬盘或者需要传输时,就转换到UTF-8编码。比如:用记事本编辑文本时,文件读取从磁盘的UTF
  • 如何在我的代码中打印中文单词..使用python(how to print chinese word in my code.. using python)
    问题 这是我的代码: print '哈哈'.decode('gb2312').encode('utf-8') ...它打印: SyntaxError: Non-ASCII character '\xe5' in file D:\zjm_code\a.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details How do I print '哈哈'? 更新:当我使用以下代码时: #!/usr/bin/python # -*- coding: utf-8 -*- print '哈哈' ...它打印鍝堝搱。 那不是我想要的。 我的IDE是Ulipad,这是IDE的错误吗? 第二次更新: 此代码将正确打印字符: #!/usr/bin/python # -*- coding: utf-8 -*- print u'哈哈'.encode('gb2312') ...当我使用这个时: #!/usr/bin/python # -*- coding: utf-8 -*- a='哈哈' print a.encode('gb2312') Traceback (most recent call last): File "D:\zjm_code\a.py", line 5, in
  • python(2)中文编码乱码问题
    python(2)中文编码乱码问题 一、什么是字符编码。1.ASCII2.GB23123.Unicode4.UTF-8 二、Python2中的字符编码三、decode()与encode()方法四、一个字符编码的例子 **前言:**中文编码问题一直是程序员头疼的问题,而Python2中的字符编码足矣令新手抓狂。本文将尽量用通俗的语言带大家彻底的了解字符编码以及Python2和3中的各种编码问题。 一、什么是字符编码。 要彻底解决字符编码的问题就不能不去了解到底什么是字符编码。计算机从本质上来说只认识二进制中的0和1,可以说任何数据在计算机中实际的物理表现形式也就是0和1,如果你将硬盘拆开,你是看不到所谓的数字0和1的,你能看到的只是一块光滑闪亮的磁盘,如果你用足够大的放大镜你就能看到磁盘的表面有着无数的凹凸不平的元件,**凹下去的代表0,突出的代表1,**这就是计算机用来表现二进制的方式。 1.ASCII 现在我们面临了第一个问题:如何让人类语言,比如英文被计算机理解?我们以英文为例,英文中有英文字母(大小写)、标点符号、特殊符号。如果我们将这些字母与符号给予固定的编号,然后将这些编号转变为二进制,那么计算机明显就能够正确读取这些符号,同时通过这些编号,计算机也能够将二进制转化为编号对应的字符再显示给人类去阅读。由此产生了我们最熟知的ASCII码。ASCII 码使用指定的7 位或8
  • 如何判断一个字符串是否为base64(how to tell if a string is base64 or not)
    问题 我有许多来自不同来源的电子邮件。 它们都具有附件,其中许多具有中文附件名称,因此这些名称由其电子邮件客户端转换为base64。 当我收到这些电子邮件时,我希望对名称进行解码。 但是还有其他名称不是base64。 如何使用jython编程语言区分字符串是否为base64? IE。 第一附件: ------=_NextPart_000_0091_01C940CC.EF5AC860 Content-Type: application/vnd.ms-excel; name="Copy of Book1.xls" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Copy of Book1.xls" 第二个附件: ------=_NextPart_000_0091_01C940CC.EF5AC860 Content-Type: application/vnd.ms-excel; name="=?gb2312?B?uLGxvmhlbrixsb5nLnhscw==?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?gb2312?B?uLGxvmhlbrixsb5nLnhscw
  • How to encode and decode Broken Chinese/Unicode characters?
    I've tried googling around but wasn't able to find what charset that this text below belongs to: 具有éœé›»ç”¢ç”Ÿè£ç½®ä¹‹å½±åƒè¼¸å…¥è£ç½® But putting <meta http-equiv="Content-Type" Content="text/html; charset=utf-8"> and keeping that string into an HTML file, I was able to view the Chinese characters properly: 具有靜電產生裝置之影像輸入裝置 So my question is: What tools can I use to detect the character set of this text? And how do I convert/encode/decode them properly in C#? Updates: For completion sake, i've updated this test. [TestMethod] public void TestMethod1() { string encodedText = "具有éœé›»ç”¢ç
  • 如何使用Perl的正则表达式匹配汉字(How to match Chinese character using perl's regex)
    问题 我需要在utf8编码的html中匹配一些中文字符,并且我编写了一些测试代码,如下所示: #! /usr/bin/perl use strict; use LWP::UserAgent; use Encode; my $ua = new LWP::UserAgent; my $request = HTTP::Request->new('GET'); my $url = 'http://www.boc.cn/sourcedb/whpj/'; $request->url($url); my $res = $ua->request($request) ; my $str_chinese = encode("utf8" ,"英磅" ) ; # my $str_chinese = "英磅" ; my $str_english = "English" ; #my $html = decode("utf8" , $res->content) ; my $html = $res->content ; if ( $html =~ /$str_chinese/ ) { print "chinese word matched" ; }else { print "chinese word unmatched\n" ; } if ( $html =~ /$str_english/i ) { print