gpt4 book ai didi

c# - Unicode代理字符编码c#

转载 作者:行者123 更新时间:2023-11-30 21:16:25 25 4
gpt4 key购买 nike

我遇到了 Unicode 字符问题。当我想对代理字符(在 D800DFFF 之间)进行编码时,它会编码为 FFFD。我使用了 Encoding.Unicode.GetString() 方法它不工作Decoder.GetChars() 方法它不工作每个代理字符

我使用以下代码:

编码代码:

string unicodeChars="a\uD800\uDA65";
FileStream stream=new FileStream (@"unicode_encoding.txt",FileMode.Create,FileAccess.Write);
byte[] buffer=Encoding.Unicode.GetBytes(unicodeChars);

stream.Write(buffer,0,buffer.Length);
stream.Close();

解码代码:

string decodedUnicodeChars;
FileStream stream2=new FileStream (@"unicode_encoding.txt",FileMode.Open,FileAccess.Read);
StreamReader reader=new StreamReader(stream2,Encoding.Unicode);

decodedUnicodeChars=reader.ReadToEnd();

foreach(char c in decodedUnicodeChars)
{
Console.Write("{0} ",Convert.ToInt32(c).ToString("X4"));
}

输出是:

0061 FFFD FFFD

最佳答案

 string unicodeChars="a\uD800\uD565";

这是一个 gigo 的例子,Garbage In,Garbage Out。代理项无效,第二个必须在\uDC00..\uDFFF 范围内。

关于c# - Unicode代理字符编码c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com