11 个解决方案
#1
code=C#]
string ss = "\u7684\u8EAB\u4EFD";
string[] arrayStr = ss.Split('\\');
char[] arrayChar = new char[5];
for (int i = 0; i < arrayStr[0].Length; i++)
{
arrayChar[i] = (char)arrayStr[0][i];
}
}
[/code]
string ss = "\u7684\u8EAB\u4EFD";
string[] arrayStr = ss.Split('\\');
char[] arrayChar = new char[5];
for (int i = 0; i < arrayStr[0].Length; i++)
{
arrayChar[i] = (char)arrayStr[0][i];
}
}
[/code]
#2
string ss = "\u7684\u8EAB\u4EFD";
System.Text.Encoding econdong=System.Text.Encoding.GetEncoding("utf-8");
string ff =econdong.GetString(econdong.GetBytes(ss.ToCharArray()));
System.Text.Encoding econdong=System.Text.Encoding.GetEncoding("utf-8");
string ff =econdong.GetString(econdong.GetBytes(ss.ToCharArray()));
#3
谢谢!!这么快有人回答!
但我的处理还有问题:
因为\u7684\u8EAB\u4EFD是从数据库取出来的,找个字符串装起来后,就变成了:
"\\u7684\\u8EAB\\u4EFD"
如果是\u7684\u8EAB\u4EFD的话,string就可以直接看到中文了,但现在多了一斜杠“\”...
怎么可以把
string str = "\\u7684\\u8EAB\\u4EFD";
里面的其中一斜杠去掉?
我怎替换都不行。。。
但我的处理还有问题:
因为\u7684\u8EAB\u4EFD是从数据库取出来的,找个字符串装起来后,就变成了:
"\\u7684\\u8EAB\\u4EFD"
如果是\u7684\u8EAB\u4EFD的话,string就可以直接看到中文了,但现在多了一斜杠“\”...
怎么可以把
string str = "\\u7684\\u8EAB\\u4EFD";
里面的其中一斜杠去掉?
我怎替换都不行。。。
#4
取掉做什么啊?
#5
因为我一取出来的数据是这样:
object obj = ds.Tables[0].Rows[0][0];
obj就等于这个了: "\\u7684\\u8EAB\\u4EFD"
比如说:
string str = "\\u7684\\u8EAB\\u4EFD";
strt.Split('\\')
{维数:[4]}
[0]: ""
[1]: "u7684"
[2]: "u8EAB"
[3]: "u4EFD"
但如果:
string str= "\u7684\u8EAB\u4EFD";
str.Split('\\')
{维数:[1]}
[0]: "的身份"
就这个区别
烦啊.......
#6
楼主理解错误,你所说的\u7684\u8EAB\u4EFD
是编译前源代码中的经转义的字符串,
而编译后\u7684\u8EAB\u4EFD实际的字符串是汉字
从转义字符到实际字符是编译器做的,类似1楼那样的转换
根本不是去掉斜杠这么简单
#7
"\\u7684\\u8EAB\\u4EFD"也是转义过的,
编译后实际的字符串是编码 \u7684\u8EAB\u4EFD
而如果你把\去掉,就变成了u7684u8EABu4EFD,什么都不是了
编译后实际的字符串是编码 \u7684\u8EAB\u4EFD
而如果你把\去掉,就变成了u7684u8EABu4EFD,什么都不是了
#9
看来字符的转换还是个不好解决的问题...
但回帖的很好、很强大!!!
还有个问题,怎么把字符转换为unicode?
就是把上面的问题异转!
如把“的”转换为unicode,结果应该为“\u7684”
#10
string str = "\\u" + ((int)'的').ToString("X");
#11
喔!!
字符的转换真的很少接触,是时候学习了!
#1
code=C#]
string ss = "\u7684\u8EAB\u4EFD";
string[] arrayStr = ss.Split('\\');
char[] arrayChar = new char[5];
for (int i = 0; i < arrayStr[0].Length; i++)
{
arrayChar[i] = (char)arrayStr[0][i];
}
}
[/code]
string ss = "\u7684\u8EAB\u4EFD";
string[] arrayStr = ss.Split('\\');
char[] arrayChar = new char[5];
for (int i = 0; i < arrayStr[0].Length; i++)
{
arrayChar[i] = (char)arrayStr[0][i];
}
}
[/code]
#2
string ss = "\u7684\u8EAB\u4EFD";
System.Text.Encoding econdong=System.Text.Encoding.GetEncoding("utf-8");
string ff =econdong.GetString(econdong.GetBytes(ss.ToCharArray()));
System.Text.Encoding econdong=System.Text.Encoding.GetEncoding("utf-8");
string ff =econdong.GetString(econdong.GetBytes(ss.ToCharArray()));
#3
谢谢!!这么快有人回答!
但我的处理还有问题:
因为\u7684\u8EAB\u4EFD是从数据库取出来的,找个字符串装起来后,就变成了:
"\\u7684\\u8EAB\\u4EFD"
如果是\u7684\u8EAB\u4EFD的话,string就可以直接看到中文了,但现在多了一斜杠“\”...
怎么可以把
string str = "\\u7684\\u8EAB\\u4EFD";
里面的其中一斜杠去掉?
我怎替换都不行。。。
但我的处理还有问题:
因为\u7684\u8EAB\u4EFD是从数据库取出来的,找个字符串装起来后,就变成了:
"\\u7684\\u8EAB\\u4EFD"
如果是\u7684\u8EAB\u4EFD的话,string就可以直接看到中文了,但现在多了一斜杠“\”...
怎么可以把
string str = "\\u7684\\u8EAB\\u4EFD";
里面的其中一斜杠去掉?
我怎替换都不行。。。
#4
取掉做什么啊?
#5
因为我一取出来的数据是这样:
object obj = ds.Tables[0].Rows[0][0];
obj就等于这个了: "\\u7684\\u8EAB\\u4EFD"
比如说:
string str = "\\u7684\\u8EAB\\u4EFD";
strt.Split('\\')
{维数:[4]}
[0]: ""
[1]: "u7684"
[2]: "u8EAB"
[3]: "u4EFD"
但如果:
string str= "\u7684\u8EAB\u4EFD";
str.Split('\\')
{维数:[1]}
[0]: "的身份"
就这个区别
烦啊.......
#6
楼主理解错误,你所说的\u7684\u8EAB\u4EFD
是编译前源代码中的经转义的字符串,
而编译后\u7684\u8EAB\u4EFD实际的字符串是汉字
从转义字符到实际字符是编译器做的,类似1楼那样的转换
根本不是去掉斜杠这么简单
#7
"\\u7684\\u8EAB\\u4EFD"也是转义过的,
编译后实际的字符串是编码 \u7684\u8EAB\u4EFD
而如果你把\去掉,就变成了u7684u8EABu4EFD,什么都不是了
编译后实际的字符串是编码 \u7684\u8EAB\u4EFD
而如果你把\去掉,就变成了u7684u8EABu4EFD,什么都不是了
#8
#9
看来字符的转换还是个不好解决的问题...
但回帖的很好、很强大!!!
还有个问题,怎么把字符转换为unicode?
就是把上面的问题异转!
如把“的”转换为unicode,结果应该为“\u7684”
#10
string str = "\\u" + ((int)'的').ToString("X");
#11
喔!!
字符的转换真的很少接触,是时候学习了!