gpt4 book ai didi

c# - ASCII 字符码

转载 作者:太空宇宙 更新时间:2023-11-03 19:57:15 25 4
gpt4 key购买 nike

在C#中我需要获取一些字符的ASCII码。所以我将 char 转换为 byteint,然后打印结果。

String sample="A";
int AsciiInt = sample[0];
byte AsciiByte = (byte)sample[0];

对于 ASCII 码为 128 及以下的字符,我得到正确答案。
但是对于大于 128 的字符,我会得到不相关的答案!

我确定所有字符都小于 0xFF。

我还测试了 System.Text.Encoding 并得到了相同的结果。

例如:对于实际字节值为 129 的字符,我得到 172!

实际上是 ASCII 字符,比如 ƒ , ‡ , ‹ , “, ¥ , © , Ï ​​, ³ , · , ½ , » , Á
每个字符占用 1 个字节,最多超过 193。我猜他们有一个 Unicode 等价物和 .Net 返回,因为将字符串解释为 Unicode!
如果有人需要访问一个字节的实际值,无论它是否是一个有效的已知 ASCII 字符,该怎么办!!!

最佳答案

But For Characters Upper Than 128 I get Irrelevant answers

不,你不知道。您将获得与 char 对应的 UTF-16 代码单元的低 8 位。

现在,如果您的文本全部是 ASCII,那会很好 - 因为 ASCII 无论如何最多只能达到 127。听起来您实际上希望以其他编码表示 - 因此您需要弄清楚是哪种编码,此时您可以使用:

Encoding encoding = ...;
byte[] bytes = encoding.GetBytes(sample);
// Now extract the bytes you want. Note that a character may be represented by more than
// one byte.

如果您本质上是在寻找一种将字节 0 到 255 分别视为 U+0000 到 U+00FF 的编码,您应该使用 ISO-8859-1,您可以使用 Encoding.GetEncoding( 28591)

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

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