在C#中有一种方法可以将扩展的ascii值(128-255)编码为单字节值,如下所示:http://asciitable.com/
我已尝试使用Encoding.UTF8.GetBytes()但返回扩展代码的多字节值。我不需要超过255的东西,但至少支持那些会很好。我正在尝试将文本数据发送到Arduino运行和LED矩阵,并希望处理重音字母,而不必处理多字节字符。
编辑:为了澄清,LED矩阵没有特定的代码页。它基本上就是我所说的。它或arduino中没有内置的文本支持。它只是一个愚蠢的128x8像素显示屏,控制器是逐个像素地手动绘制文本。因此,我实际上提供了一个字体(作为头文件中的字节数组),并且可以使任何字符代码对应于我想要的任何输出...所以,使用哪个代码页实际上不是一个问题哪一个会给我完整的8位字符。
答案 0 :(得分:5)
只需将代码页编号传递给Encoding
构造函数即可。如果你链接的是正确的“扩展ASCII”表,那就是437。
但IBM437编码在DOS程序和Windows控制台应用程序之外并不常见。否则,西欧语言的标准编码为ISO-8859-1(Windows代码页28591)或windows-1252。
答案 1 :(得分:2)
您需要知道LED矩阵使用的代码页。它必然是标准的,如1252,西欧和美洲的Windows代码页。
var bytes = Encoding.GetEncoding(1252).GetBytes("Åãrdvárk");
答案 2 :(得分:1)
Default
编码应该处理这个问题。或使用ANSI代码页/编码。