把string转为char。或有什么可以把这个unicode:\u7684\u8EAB\u4EFD 转为汉字?

时间:2023-01-05 23:07:30
因为想把string "\u7684\u8EAB\u4EFD" 转换为汉字,所以需要把每一组,如: "\u7684"转为 char类型

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]

#2


string ss = "\u7684\u8EAB\u4EFD";
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";
里面的其中一斜杠去掉?
我怎替换都不行。。。

#4


取掉做什么啊?

#5


引用 4 楼 qfgyd2004 的回复:
取掉做什么啊?



因为我一取出来的数据是这样:
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


引用 3 楼 heroes33 的回复:
如果是\u7684\u8EAB\u4EFD的话,string就可以直接看到中文了,但现在多了一斜杠“\”...
怎么可以把
string str = "\\u7684\\u8EAB\\u4EFD";
里面的其中一斜杠去掉?
我怎替换都不行。。。


楼主理解错误,你所说的\u7684\u8EAB\u4EFD
是编译前源代码中的经转义的字符串,
而编译后\u7684\u8EAB\u4EFD实际的字符串是汉字

从转义字符到实际字符是编译器做的,类似1楼那样的转换
根本不是去掉斜杠这么简单

#7


"\\u7684\\u8EAB\\u4EFD"也是转义过的,
编译后实际的字符串是编码 \u7684\u8EAB\u4EFD
而如果你把\去掉,就变成了u7684u8EABu4EFD,什么都不是了

#9


引用 8 楼 viena 的回复:
http://topic.csdn.net/u/20071102/17/8a7204d1-557f-4216-a675-632ace48985c.html?seed=1394984690


看来字符的转换还是个不好解决的问题...
但回帖的很好、很强大!!!
还有个问题,怎么把字符转换为unicode?
就是把上面的问题异转!
如把“的”转换为unicode,结果应该为“\u7684”


#10


string str = "\\u" + ((int)'的').ToString("X");

#11


引用 10 楼 viena 的回复:
C# codestring str = "\\u" + ((int)'的').ToString("X");


喔!!
字符的转换真的很少接触,是时候学习了!

#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]

#2


string ss = "\u7684\u8EAB\u4EFD";
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";
里面的其中一斜杠去掉?
我怎替换都不行。。。

#4


取掉做什么啊?

#5


引用 4 楼 qfgyd2004 的回复:
取掉做什么啊?



因为我一取出来的数据是这样:
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


引用 3 楼 heroes33 的回复:
如果是\u7684\u8EAB\u4EFD的话,string就可以直接看到中文了,但现在多了一斜杠“\”...
怎么可以把
string str = "\\u7684\\u8EAB\\u4EFD";
里面的其中一斜杠去掉?
我怎替换都不行。。。


楼主理解错误,你所说的\u7684\u8EAB\u4EFD
是编译前源代码中的经转义的字符串,
而编译后\u7684\u8EAB\u4EFD实际的字符串是汉字

从转义字符到实际字符是编译器做的,类似1楼那样的转换
根本不是去掉斜杠这么简单

#7


"\\u7684\\u8EAB\\u4EFD"也是转义过的,
编译后实际的字符串是编码 \u7684\u8EAB\u4EFD
而如果你把\去掉,就变成了u7684u8EABu4EFD,什么都不是了

#8


#9


引用 8 楼 viena 的回复:
http://topic.csdn.net/u/20071102/17/8a7204d1-557f-4216-a675-632ace48985c.html?seed=1394984690


看来字符的转换还是个不好解决的问题...
但回帖的很好、很强大!!!
还有个问题,怎么把字符转换为unicode?
就是把上面的问题异转!
如把“的”转换为unicode,结果应该为“\u7684”


#10


string str = "\\u" + ((int)'的').ToString("X");

#11


引用 10 楼 viena 的回复:
C# codestring str = "\\u" + ((int)'的').ToString("X");


喔!!
字符的转换真的很少接触,是时候学习了!