12 个解决方案
#1
原因是这样的,我的字串里面是\u039C\u0395\u039D\u03A4 Volley ,输出是应该是ΜΕΝΤ Volley,但是我用JSON类拆分以后,发现变成了039C0395039D03A4 Volley,\u不见了
#2
或者怎么把\u039C\u0395\u039D\u03A4直接转成MENT
#3
如果这样string str = "\u039C\u0395\u039D\u03A4 ";
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
#5
我用public static string FromUnicodeString( string str)
{
//最直接的方法Regex.Unescape(str);
StringBuilder strResult = new StringBuilder();
if (!string.IsNullOrEmpty(str))
{
string[] strlist = str.Replace("\\", "").Split('u');
try
{
for (int i = 1; i < strlist.Length; i++)
{
int charCode = Convert.ToInt32(strlist[i], 16);
strResult.Append((char)charCode);
}
}
catch (FormatException ex)
{
return Regex.Unescape(str);
}
}
return strResult.ToString();
}
可以得到的是这个样子的
是前面的那个字符串,我要想转换成普通的MENT,前面那个我也不知道是什么格式的
#6
前面那个怪怪的
#7
如果这样string str = "\u039C\u0395\u039D\u03A4 ";
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
http://bbs.csdn.net/topics/390721598
后面那个才是正常的输出
#8
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
#9
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
我小写的是正常的好吧,键盘里面输出就是MENT,而不是前面那种,不知道怎么转换前面那种,请教
#10
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
int charCode = Convert.ToInt32(strlist[i], 16);这一句M的charCode值是924,正常情况下M的值应该不是924,正常的M输出的ASCII值是77
#11
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
实际上Regex.Unescape(str),执行了这一句就输出了那些希腊字母
#12
像这样的特殊字符只能替换,因为你也不知道那些特殊字符到底对应哪些英文字母,类似
String.RemoveExtraSpace().RemoveHTMLTag().NCR2Text().Replace("(W)", "(w)")..Replace("\\u200C", "").Replace("\\u0421", "C").Replace("\\xED", "i").Replace("\\xC1", "A").Replace("\\xA0", " ").Replace("\\u039C", "M").Replace("\\u0395", "E").Replace("\\u039D", "N").Replace("\\u03A4", "T");有多少就替换多少,只想到这个笨办法
String.RemoveExtraSpace().RemoveHTMLTag().NCR2Text().Replace("(W)", "(w)")..Replace("\\u200C", "").Replace("\\u0421", "C").Replace("\\xED", "i").Replace("\\xC1", "A").Replace("\\xA0", " ").Replace("\\u039C", "M").Replace("\\u0395", "E").Replace("\\u039D", "N").Replace("\\u03A4", "T");有多少就替换多少,只想到这个笨办法
#1
原因是这样的,我的字串里面是\u039C\u0395\u039D\u03A4 Volley ,输出是应该是ΜΕΝΤ Volley,但是我用JSON类拆分以后,发现变成了039C0395039D03A4 Volley,\u不见了
#2
或者怎么把\u039C\u0395\u039D\u03A4直接转成MENT
#3
如果这样string str = "\u039C\u0395\u039D\u03A4 ";
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
#4
如果这样string str = "\u039C\u0395\u039D\u03A4 ";
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
http://bbs.csdn.net/topics/390721598
#5
如果这样string str = "\u039C\u0395\u039D\u03A4 ";
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
http://bbs.csdn.net/topics/390721598
我用public static string FromUnicodeString( string str)
{
//最直接的方法Regex.Unescape(str);
StringBuilder strResult = new StringBuilder();
if (!string.IsNullOrEmpty(str))
{
string[] strlist = str.Replace("\\", "").Split('u');
try
{
for (int i = 1; i < strlist.Length; i++)
{
int charCode = Convert.ToInt32(strlist[i], 16);
strResult.Append((char)charCode);
}
}
catch (FormatException ex)
{
return Regex.Unescape(str);
}
}
return strResult.ToString();
}
可以得到的是这个样子的
是前面的那个字符串,我要想转换成普通的MENT,前面那个我也不知道是什么格式的
#6
前面那个怪怪的
#7
如果这样string str = "\u039C\u0395\u039D\u03A4 ";
Console.WriteLine(str);
输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
http://bbs.csdn.net/topics/390721598
后面那个才是正常的输出
#8
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
#9
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
我小写的是正常的好吧,键盘里面输出就是MENT,而不是前面那种,不知道怎么转换前面那种,请教
#10
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
int charCode = Convert.ToInt32(strlist[i], 16);这一句M的charCode值是924,正常情况下M的值应该不是924,正常的M输出的ASCII值是77
#11
这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
实际上Regex.Unescape(str),执行了这一句就输出了那些希腊字母
#12
像这样的特殊字符只能替换,因为你也不知道那些特殊字符到底对应哪些英文字母,类似
String.RemoveExtraSpace().RemoveHTMLTag().NCR2Text().Replace("(W)", "(w)")..Replace("\\u200C", "").Replace("\\u0421", "C").Replace("\\xED", "i").Replace("\\xC1", "A").Replace("\\xA0", " ").Replace("\\u039C", "M").Replace("\\u0395", "E").Replace("\\u039D", "N").Replace("\\u03A4", "T");有多少就替换多少,只想到这个笨办法
String.RemoveExtraSpace().RemoveHTMLTag().NCR2Text().Replace("(W)", "(w)")..Replace("\\u200C", "").Replace("\\u0421", "C").Replace("\\xED", "i").Replace("\\xC1", "A").Replace("\\xA0", " ").Replace("\\u039C", "M").Replace("\\u0395", "E").Replace("\\u039D", "N").Replace("\\u03A4", "T");有多少就替换多少,只想到这个笨办法