C:char与非ASCII文本数据的unsigned char

Cra*_*son 5 c string unsigned-char

这个问题:

什么是unsigned char?

在C 中讨论charunsigned char vs. signed char的工作做得很好.

但是,它不直接解决非ASCII文本应该使用的内容.因此,如果我有一个字节数组,表示某些任意字符集中的文本,如UTF-8或Big5(或有时是ASCII),我应该使用charunsigned char数组吗?

我倾向于使用char,因为否则当数组为ASCII并且我使用strlen时,gcc会给出关于指针签名的警告.但我想知道什么是正确的.

Dr.*_*ana 4

使用普通的 char 来表示字符。当您需要一个包含 中的值的有符号整数类型时,请使用有符号字符-127 to +127。使用 unsigned char 来获得无符号整数类型,其值范围为0 to 255.

  • 这并没有比OP提供的链接多(而且少得多)。即,它不是所问问题的答案,甚至没有反映出存在这样的问题。令人惊讶的是它获得了两票赞成。 (3认同)