Unicode中文转码函数代码
程序员文章站
2024-03-08 09:53:28
实在搞不懂tx,用户名的编码竟然返回的值不一样,如 "雷磊52d",就有如下两种返回?雷磊?52d 和 %01%u96f7...
实在搞不懂tx,用户名的编码竟然返回的值不一样,如 "雷磊52d",就有如下两种返回?雷磊?52d 和 %01%u96f7%u78ca%0152d。相当的郁闷啊。好在tx还有返回中文名字,就省去的解码的过程,但还是记录下。
/// <summary>
/// unicode字符转换为中文字符,如96f7,78ca等"
/// </summary>
private char unicodetochinesebyhex(string unicode)
{
return (char)int.parse(unicode, system.globalization.numberstyles.hexnumber);
}
/// <summary>
/// unicode字符转换为中文字符,如96f7,78ca等
/// 注意:解码从后向前的
/// </summary>
private string unicodetochinese(string unicode)
{
byte[] array = new byte[unicode.length / 2];
for (int i = 0; i < array.length; i++)
{
string s1 = unicode.substring(unicode.length - (i + 1) * 2, 2);
int t1 = convert.toint32(s1, 16);
array[i] = (byte)t1;
}
return system.text.encoding.unicode.getstring(array);
}
/// <summary>
/// 中文字符转换为unicode字符,如'雷'等
/// </summary>
private string chinesetounicode(char chinese)
{
return ((int)chinese).tostring("x");
}
复制代码 代码如下:
/// <summary>
/// unicode字符转换为中文字符,如96f7,78ca等"
/// </summary>
private char unicodetochinesebyhex(string unicode)
{
return (char)int.parse(unicode, system.globalization.numberstyles.hexnumber);
}
/// <summary>
/// unicode字符转换为中文字符,如96f7,78ca等
/// 注意:解码从后向前的
/// </summary>
private string unicodetochinese(string unicode)
{
byte[] array = new byte[unicode.length / 2];
for (int i = 0; i < array.length; i++)
{
string s1 = unicode.substring(unicode.length - (i + 1) * 2, 2);
int t1 = convert.toint32(s1, 16);
array[i] = (byte)t1;
}
return system.text.encoding.unicode.getstring(array);
}
/// <summary>
/// 中文字符转换为unicode字符,如'雷'等
/// </summary>
private string chinesetounicode(char chinese)
{
return ((int)chinese).tostring("x");
}