加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何获得正确的字符串文本?

发布时间:2020-12-15 21:22:50 所属栏目:百科 来源:网络整理
导读:我正在尝试获取由此字符串表示的正确的unicode字符: string originalString = "u0605u04c3u5000u0000u5000ufd00u4400ud500u7600ud300u4f00ubc00u0c00u2d00u4000ue400u0e00u7400u4800ub700u1d00u1300ue900u6000u4c00ufb00u9900u
我正在尝试获取由此字符串表示的正确的unicode字符:

string originalString = "u0605u04c3u5000u0000u5000ufd00u4400ud500u7600ud300u4f00ubc00u0c00u2d00u4000ue400u0e00u7400u4800ub700u1d00u1300ue900u6000u4c00ufb00u9900u3900ud900u6700uae00ueb00u8f00u2800u0200ub300u5c00ufe00u0100u3d00u9100u3000u0300u1600u0100u7000u6200u8e00u1d00u8e00u6200ua900u6300uc800u0900ub700ub000u6000ue400u9200u3f00u9100u8d00uef00u3600u0100u9e00u0081";

如果我在cs文件中对其进行硬编码,我可以在调试模式下看到它显示正确的字符,但如果我在文件中写入了确切的字符串并尝试读取它,则会显示字符串,因为它在文件.

TextReader tr = new StreamReader("c:test.txt");
string tmpString = tr.ReadLine();
tr.Close();

byte[] array = Encoding.Unicode.GetBytes(tmpString );
string finalResult = Encoding.Unicode.GetString(array);

如何使finalResult字符串具有正确的unicode字符?

提前致谢
贡萨洛

编辑:已经尝试过放置

TextReader tr = new StreamReader("c:test.txt",Encoding.Unicode);

但是角色与正确的角色不同.

解决方法

您的文件实际上是否包含内容:

u0605u04c3u5000u0000u5000ufd00u4400ud500u7600ud300u4f00
ubc00u0c00u2d00u4000ue400u0e00u7400u4800ub700u1d00u1300
ue900u6000u4c00ufb00u9900u3900ud900u6700uae00ueb00u8f00
u2800u0200ub300u5c00ufe00u0100u3d00u9100u3000u0300u1600
u0100u7000u6200u8e00u1d00u8e00u6200ua900u6300uc800u0900
ub700ub000u6000ue400u9200u3f00u9100u8d00uef00u3600u0100u9e00u0081

如果是这样,您需要将每个序列转换为其对应的unicode字符

string originalString = "u0605u04c3u5000u0000u5000ufd00u4400ud500u7600ud300u4f00ubc00u0c00u2d00u4000ue400u0e00u7400u4800ub700u1d00u1300ue900u6000u4c00ufb00u9900u3900ud900u6700uae00ueb00u8f00u2800u0200ub300u5c00ufe00u0100u3d00u9100u3000u0300u1600u0100u7000u6200u8e00u1d00u8e00u6200ua900u6300uc800u0900ub700ub000u6000ue400u9200u3f00u9100u8d00uef00u3600u0100u9e00u0081";
    string tmpString = "u0605u04c3u5000u0000u5000ufd00u4400ud500u7600ud300u4f00ubc00u0c00u2d00u4000ue400u0e00u7400u4800ub700u1d00u1300ue900u6000u4c00ufb00u9900u3900ud900u6700uae00ueb00u8f00u2800u0200ub300u5c00ufe00u0100u3d00u9100u3000u0300u1600u0100u7000u6200u8e00u1d00u8e00u6200ua900u6300uc800u0900ub700ub000u6000ue400u9200u3f00u9100u8d00uef00u3600u0100u9e00u0081";

    string finalResult = Regex.Replace(tmpString,@"u(....)",match => ((char)int.Parse(match.Groups[1].Value,System.Globalization.NumberStyles.HexNumber)).ToString());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读