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

时间:2015-03-13 13:11:58

标签: c encoding utf-8 ascii eclipse-cdt

我从这样的char中获取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表(字符编号0到127),但它不能处理扩展ASCII表中的字符。 例如,我从这个符号“°”得到-62(它应该是248)。

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

你知道它为什么不起作用吗?我怎样才能让它发挥作用?

感谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

因为char是-127到127.你不能像那样使用扩展的ASCII表。

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