c#十六进制字符串到ASCII转换导致'?'

时间:2017-04-20 13:06:54

标签: c#

即。十六进制'BF',而在转换网站中,ASCII代码在我的代码中是'¿'这个十六进制和任何更高的得到'?'代替。我如何才能获得转换以包含这些字符?

BinaryWriter binaryWriter = new BinaryWriter(File.Open(Path.Combine(Environment.CurrentDirectory , "kek.txt") , FileMode.Create), Encoding.ASCII);

        binaryWriter.Write("\xBF");

        binaryWriter.Close();

2 个答案:

答案 0 :(得分:0)

我不认为,ASCII能够使用'¿'。请尝试使用UTF8。

https://en.wikipedia.org/wiki/ASCII#Printable_characters

答案 1 :(得分:0)

你需要写字节值而不是字符串 - 试试这个:

BinaryWriter binaryWriter = new BinaryWriter(File.Open(Path.Combine(Environment.CurrentDirectory , "kek.txt") , FileMode.Create), Encoding.ASCII);
byte b = 0xBF;
binaryWriter.Write(b);
binaryWriter.Close();

有关“问题”的更多解释,请参阅此链接:ASCII Extended in C# string