如何获取UTF-8字符的值

2vi*_*on2 5 c utf-8

我有一个中文或阿拉伯语的utf-8字符.我需要获取UTF-8字符的值,比如获取ASCII字符的值.我需要在"C"中实现它.你能提出你的建议吗?

例如:

char array[3] = "ab";
int v1,v2;

v1 = array[0];
v2 = array[1];
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我将在v1和v2中获得相应的ASCII值.对于UF8字符串,我需要获取字符串中每个字符的值.

use*_*407 5

只有C语言的C11标准版本提供UTF-8支持,因此根据您的目标标准,您可以使用C11功能(<uchar.h>)或依赖于诸如ICU之类的UTF库.


Cod*_*odo 5

没有UTF-8这样的东西.有Unicode字符,并且有Unicode字符的编码,例如UTF-8.

您可能想要的是将几个字节(以UTF-8编码并表示单个Unicode字符)解码为Unicode代码点.

网上有很多可用的C源代码.只是谷歌为UTF-8解码Ç.

更新:

您显然需要的是UTF-8解码,不仅仅是一个字符,即将字节数组(UTF-8解码文本)解码为整数数组(Unicode代码点)的函数.

答案保持不变:使用Google.那里有很多C代码.


APr*_*mer 5

C 和 C++ 模型是编码与语言环境相关联,因此使用该模型的代码适用于语言环境的编码,无论它是什么。

如果您的语言环境使用 UTF8 进行窄编码。见mbtowc()mbrtowc()mbstowcsmbsrtocws(),他们应该是非常简单易用。