C#(CSharp) | VC/C++ | ASP(ASP.NET) | SQL Server | OpenGL | CMM | 网站开发SEO | 数控技术 | 地理信息系统 | WINDOWS操作系统 |
联高软件 > 技术文档 > C# > 汉字转换为UNICODE编码UNICODE编码转换为汉字的C#与JS源程序 C#软件开发参考文档

汉字转换为UNICODE编码UNICODE编码转换为汉字的C#与JS源程序

发表:联高软件www.legalsoft.com.cn,本文被阅读:1112

摘要:文章:汉字转换为UNICODE编码UNICODE编码转换为汉字的C#与JS源程序 摘要:C#,JavaScript汉字转换为Unicode编码Unicode编码转换为汉字JavaScript库JavaScri,发表于北京联高软件有限公司技术文章栏目,代码以高亮显示。
关键字:unicode, 转换, 汉字, 编码, js, 程序, gt, str, 字符, bts, string, return, gb, unicodeconverter, byte, 代码, param

C#,JavaScript 汉字转换为Unicode编码 Unicode编码转换为汉字

JavaScript库

-JavaScript
var GB2312UnicodeConverter={
ToUnicode:function(str){
return escape(str).toLocaleLowerCase().replace(/%u/gi,"\\u");
}
,ToGB2312:function(str){
return unescape(str.replace(/\\u/gi,"%u"));
}
};


测试代码

-HTML
<html><head><meta http-equiv="content-type" content="text/html" /></head><body><script>
var GB2312UnicodeConverter={
ToUnicode:function(str){
return escape(str).toLocaleLowerCase().replace(/%u/gi,"\\u");
}
,ToGB2312:function(str){
return unescape(str.replace(/\\u/gi,"%u"));
}
};
//=============测试代码
var str="上海",unicode;
document.write(str+"<br/>");
unicode=GB2312UnicodeConverter.ToUnicode(str);
document.write("汉字转换为Unicode代码:"+unicode+"<br/><br/>");
document.write("Unicode代码转换为汉字:"+GB2312UnicodeConverter.ToGB2312(unicode));
</script> </body></html>

Unicode和汉字编码小知识

将汉字进行UNICODE编码,如:"王"编码后就成了"\u738b",UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解了,"738b"是两个字符,分别是"73""8b"。但是在将 UNICODE字符编码的内容转换为汉字的时候,字符是从后面向前处理的,所以,需要把字符按照顺序"8b""73"进行组合得到汉字。

下面是C#汉字Unicode编码相互转换代码。

-C#
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Globalization;
public class GB2312UnicodeConverter
{
/// <summary>
/// 汉字转换为Unicode编码
/// </summary>
/// <param name="str">要编码的汉字字符串</param>
/// <returns>Unicode编码的的字符串</returns>
public static string ToUnicode(string str)
{
byte[] bts = Encoding.Unicode.GetBytes(str);
string r = "";
for (int i = 0; i < bts.Length; i += 2) r += "\\u" + bts[i + 1].ToString("x").PadLeft(2, "0") + bts[i].ToString("x").PadLeft(2, "0");
return r;
}
/// <summary>
/// 将Unicode编码转换为汉字字符串
/// </summary>
/// <param name="str">Unicode编码字符串</param>
/// <returns>汉字字符串</returns>
public static string ToGB2312(string str)
{
string r = "";
MatchCollection mc = Regex.Matches(str, @"\\u([\w]{2})([\w]{2})", RegexOptions.Compiled | RegexOptions.IgnoreCase);
byte[] bts = new byte[2];
foreach(Match m in mc )
{
bts[0] = (byte)int.Parse(m.Groups[2].Value, NumberStyles.HexNumber);
bts[1] = (byte)int.Parse(m.Groups[1].Value, NumberStyles.HexNumber);
r += Encoding.Unicode.GetString(bts);
}
return r;
}
}
[C#] ASP程序员学习C#之超级攻略 (4911)
[C#] ASP.NET中数据库数据导入Excel并打印 (4910)
[C#] .NET 的数据访问应用程序块 (2819)
[C#] 用DES加密数据库信息,增强Asp.net的安全性(1)--分析 (1867)
[C#] 360度全方位比较C#和VB (4390)
[C#] C#绘图(可以处理负值) (2921)
[C#] C#进阶 (2786)
[C#] C#中string与byte[]的转换帮助类 (3646)
[C#] C#中用axWebBrowser中提交表单,或点击某个对象 (4163)
[C#] C#中一些字符串操作的常用用法 (4126)
[C#] C#实现对Word文件读写 (2632)
[C#] 数值变换时的格式化字符举例 (2216)
[C#] Asp.net(C#)给图片加上水印效果 (3481)
[C#] 用Visual C#做DLL文件 (3003)
[C#] C#.net中类的覆写(OverRide) (3288)
[C#] DataGrid实现自定义分页 (2860)
[C#] C#哈希值的产生与比较 (1255)
[C#] 在ASP.NET中怎么用SESSION判断用户是否登录? (5139)
[C#] 用C#生成中文汉字验证码的基本原理 (4031)
[C#] VB.NET vs C# (3358)

www.315soft.com