C:错误的 char 到 ascii 转换(来自扩展 ascii table 的 char)

C : wrong char to ascii conversion (char from the extended ascii table)

我从这样的字符中获取 ascii 码(使用 C 语言):

char * text = "5°"; 
int sizeText = strlen(text);
int i = 0;
float asciiCode;
for(i=0; i<sizeText; i++) {
    asciiCode = (GLfloat)text[i];
}

它适用于 ASCII table(字符编号 0 到 127),但不适用于扩展 ASCII table 中的字符。 例如,我从这个符号“°”得到 -62(它应该是 248)。

我尝试了几种编码,如 UTF-8 和 ISO 8859-1(我正在使用 eclipse cdt 顺便说一句),我每次都得到不同的 ASCII 码,但不是好的 :/

您知道它为什么不起作用吗?我怎样才能让它工作?

谢谢。

我认为你的问题是 assiiCode 是一个浮点数,尝试将它声明为一个 unsigned int

因为 char 是从 -127 到 127。你不能像那样使用扩展 ASCII table。

我建议您改用 wchar。检查 wchar.hwctype.h 手册。