.net unicode汉字互相转换
【两种方法】.net unicode汉字互相转换
=========================================
//汉字转Unicode编码(ASCII)
private string StringToUnicode(string srcText)
{
string dst = "";
char[] src = srcText.ToCharArray();
for (int i = ; i < src.Length; i++)
{
byte[] bytes = Encoding.Unicode.GetBytes(src[i].ToString());
string str = @"\u" + bytes[].ToString("X2") + bytes[].ToString("X2");
dst += str;
}
return dst;
}
//TO汉字 srcText为去除\u之后的4位字符
using System.Globalization;
private string ToCN(string srcText)
{
string str = srcText;
byte[] bytes = new byte[];
bytes[] = byte.Parse(int.Parse(str.Substring(, ), NumberStyles.HexNumber).ToString());
bytes[] = byte.Parse(int.Parse(str.Substring(), NumberStyles.HexNumber).ToString());
return Encoding.Unicode.GetString(bytes);
}
================================================================
public static string ConvertToGB(string unicodeString)
{
string[] strArray = unicodeString.Split(new string[] { @"u" }, StringSplitOptions.None);
string result = string.Empty;
for (int i = ; i < strArray.Length; i++)
{
if (strArray[i].Trim() == "" || strArray[i].Length < || strArray.Length <= )
{
result += i == ? strArray[i] : @"u" + strArray[i]; continue;
}
for (int j = strArray[i].Length > ? : strArray[i].Length; j >= ; j--)
{
try
{
result += char.ConvertFromUtf32(Convert.ToInt32(strArray[i].Substring(, j), )) + strArray[i].Substring(j);
break;
}
catch
{
continue;
}
}
} return result;
}
public static string ConvertToUnicode(string strGB)
{
char[] chs = strGB.ToCharArray(); string result = string.Empty; foreach (char c in chs)
{
result += @"u" + char.ConvertToUtf32(c.ToString(), ).ToString("x");
}
return result;
}
/// <summary>
/// 普通字符串与UniCode字符串间转换
/// </summary>
public static class StringToUniCode
{
/// <summary>
/// 字符串转为UniCode码字符串
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string StringToUnicode(string s)
{
char[] charbuffers = s.ToCharArray();
byte[] buffer;
StringBuilder sb = new StringBuilder();
for (int i = ; i < charbuffers.Length; i++)
{
buffer = System.Text.Encoding.Unicode.GetBytes(charbuffers[i].ToString());
sb.Append(String.Format("//u{0:X2}{1:X2}", buffer[], buffer[]));
}
return sb.ToString();
}
/// <summary>
/// Unicode字符串转为正常字符串
/// </summary>
/// <param name="srcText"></param>
/// <returns></returns>
public static string UnicodeToString(string srcText)
{
string dst = "";
string src = srcText;
int len = srcText.Length / ;
for (int i = ; i <= len - ; i++)
{
string str = "";
str = src.Substring(, ).Substring();
src = src.Substring();
byte[] bytes = new byte[];
bytes[] = byte.Parse(int.Parse(str.Substring(, ), NumberStyles.HexNumber).ToString());
bytes[] = byte.Parse(int.Parse(str.Substring(, ), NumberStyles.HexNumber).ToString());
dst += Encoding.Unicode.GetString(bytes);
}
return dst;
}
}
.net unicode汉字互相转换的更多相关文章
- .Net(c#)汉字和Unicode编码互相转换
{"Tilte": "\u535a\u5ba2\u56ed", "Href": "http://www.cnblogs.com&q ...
- .Net(c#)汉字和Unicode编码互相转换实例
{"name": "\u676d\u5dde", "href": "www.baidu.com"} 经常遇到这样内容的j ...
- FATFS外置UNICODE GBK双向转换码表(转)
源:FATFS外置UNICODE GBK双向转换码表 将UtoG,GtoU双向码表放到存储卡里面实现长文件名,因为FATFS长文件名需要unicode支持, 首先将UtoG.sys,GtoU.sys两 ...
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下 ...
- java中汉字自动转换成拼音
java中汉字自动转换成拼音 1.需要下载jar包 pinyin4j.2.5.0.jar ,加入到WEB-INF下的lib里边,右键add to bulid path. 2.[代码]PinYinUti ...
- unicode 编码在线转换--javascript
// unicode 编码在线转换工具--javascript 本人在网上搜索,看到有使用javascript做unicode编码转换的,感觉很好玩,所以拿来使用的. 这个功能有目前测试了两种: 1) ...
- OC1_汉字拼音转换 练习
// // WordManager.h // OC1_汉字拼音转换 // // Created by zhangxueming on 15/4/27. // Copyright (c) 2015年 z ...
- Python2.X如何将Unicode中文字符串转换成 string字符串
Python2.X如何将Unicode中文字符串转换成 string字符串 普通字符串可以用多种方式编码成Unicode字符串,具体要看你究竟选择了哪种编码:unicodestring = u&q ...
- 用AutoHotkey做汉字到Unicode字符串的转换
要把汉字转换为搜的形式,也就是在汉字的Unicode Big Endian编码前面加"&#x",后面加分号.例如""字转换后为"搜" ...
随机推荐
- @RefreshScope 的作用
让在application.properties里自定义的变量也能通过@Value 注解正常注入
- 余额表前后台操作和对应sql
发生额的含义:产生于账行表. gl_je_lines账行表——>借贷(会产生额度,即发生额) —————————————————————————— gl_balances余额表: 余额 = ...
- Python基本数据类型——列表
序列 序列是Python中的内置数据结构,常见的序列有:列表.字典.元组. 所有的序列都有自己的索引,程序可以通过索引来访问对应的值. 列表 list list是Python的一种最常见的内置数据类型 ...
- django 表单常用field
BooleanField字段:相当于单选框 CharField:接受字符串 参数:max_length最大长度,min_length最小长度 require字段是否是必须的,默认为required=T ...
- tcp 关闭socket 不发 FIN(RST)
转自:http://blog.chinaunix.net/uid-10106787-id-3172066.html 一般情况下,当TCP连接主动关闭时,会向对端发送一个FIN,对端会获得一个读事件,调 ...
- Python邮件发送脚本(Linux,Windows)通用
脚本 #!/usr/bin/python #-*- coding:utf-8 -*- #Python Mail for chenglee #if fileformat=dos, update file ...
- stm32最简单的实现BootLoader
BootLoader大家应该都知道是干什么的,简单的来说就是程序开始运行前的一段程序. 在成熟的产品中,通常都是采用BootLoader方式来升级产品的程序.也就是IAP升级.在了解完基本的实现原理后 ...
- eclipse启动时发生的Initializing Java Tooling错误
eclipse在启动发生An internal error occurred during: "Initializing Java Tooling". java.lang.Null ...
- spring启动后立即执行方法
1.方法所属的类继承InitializingBean接口. 2.重写afterPropertiesSet()方法. afterPropertiesSet方法会在bean被初始化时执行. 当bean的作 ...
- init: wait for '/dev/block/bootdevice/by-name/cache' timed out and took 5007ms【学习笔记】
平台信息:内核:4.9.112系统:android one平台:qcom sdm439 作者:庄泽彬(欢迎转载,请注明作者) 一.android设备在开机的时候打印了如下的log,由于系统使用了AB分 ...