编码为单字节扩展 ascii 值

发布于 2024-10-11 00:12:29 字数 489 浏览 2 评论 0原文

在 C# 中,有一种方法可以将扩展 ascii 值 (128-255) 编码为其单字节值,如下所示: http:// asciitable.com/

我尝试过使用 Encoding.UTF8.GetBytes() 但会返回扩展代码的多字节值。我不需要超过 255 的任何东西,但至少支持这些就很好了。我正在尝试将文本数据发送到正在运行的 Arduino 和 LED 矩阵,并希望处理重音字母,而不必处理多字节字符。

编辑:澄清一下,LED 矩阵没有特定的代码页。基本上我说什么就是什么。它或 arduino 没有内置的文本支持。它只是一个愚蠢的 128x8 像素显示器,控制器正在手动逐像素绘制文本。因此,我实际上向它提供了一种字体(作为头文件中的字节数组),并且可以使任何字符代码对应于我想要的任何输出......所以,使用哪个代码页并不是真正的问题,除了哪个会给我完整的 8 位字符。

In C# is there a way to encode the extended ascii values (128-255) into their single byte values as shown here: http://asciitable.com/

I've tried using Encoding.UTF8.GetBytes() but that returns multi byte values for the extended codes. I don't need anything beyond 255, but it would be nice to at least support those. I'm trying to send the text data to an Arduino running and LED matrix and want to handle accented letters, without having to deal with multibyte characters.

EDIT: To clarify, the LED matrix has no specific codepage. It's basically whatever I say it is. There's no built in text support in it or the arduino. It's just a dumb 128x8 pixel display and the controller is manually drawing the text pixel by pixel. Therefore, I'm actually providing a font (as a byte array in a header file) to it and can make any character code correspond to any output that I want... so, which codepage to use is not really an issue other than which one will give me full 8-bit characters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

尝蛊 2024-10-18 00:12:30

您需要知道 LED 矩阵使用的代码页。它必然是一个标准的代码页,例如 1252(西欧和美洲的 Windows 代码页)。

        var bytes = Encoding.GetEncoding(1252).GetBytes("Åãrdvárk");

You need to know the code page that the LED matrix uses. It is bound to be a standard one like 1252, the Windows code page for Western Europe and the Americas.

        var bytes = Encoding.GetEncoding(1252).GetBytes("Åãrdvárk");
胡大本事 2024-10-18 00:12:30

Default 编码应该可以处理这个问题。或者使用 ANSI 代码页/编码。

The Default encoding should handle that. Or use the ANSI codepage/encoding.

披肩女神 2024-10-18 00:12:29

只需将代码页号传递给 Encoding 构造函数即可。如果您链接的是正确的“扩展 ASCII”表,则为 437

但 IBM437 编码在 DOS 程序和 Windows 控制台应用程序之外并不常见。否则,西欧语言的标准编码为 ISO-8859-1 (Windows代码页 28591) 或 windows-1252

Just pass the code page number to the Encoding constructor. If what you linked is the correct "extended ASCII" table, that would be 437.

But IBM437 encoding is uncommon outside of DOS programs and Windows console apps. Otherwise, the standard encoding for Western European languages is ISO-8859-1 (Windows code page 28591) or windows-1252.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文