小编nav*_*ian的帖子

使用 getchar() 在 C 中进行 UTF-8 编码

我必须制作一个使用 UTF-8 编码的字符并将它们“翻译”成 Unicode 的代码。您可以在此处查看 UTF-8 是什么https://en.wikipedia.org/wiki/UTF-8。我是 C 初学者,所以我有三个限制:

  1. 我必须使用 getchar()
  2. 禁止使用数组
  3. 我只对 1、2、3 和 4 个字节的 Unicode 字符感兴趣

所以我有这个代码,它完全可以用于 4 个字节(我知道我必须使用!= EOF每个字节,getchar();但现在这不是我的问题)

#include <stdio.h>

int main(void) {
        int ch1, ch2, ch3, ch4, c;
        ch1 = getchar();
        ch2 = getchar();
        ch3 = getchar();
        ch4 = getchar();
        if ((ch1 & 0xF8) != 0xF0 || (ch2 & 0xC0) != 0x80 ||
                        (ch3 & 0xC0) != 0x80 || (ch4 & 0xC0) != 0x80) {
                printf("Error in UTF-8 …
Run Code Online (Sandbox Code Playgroud)

c utf-8

2
推荐指数
1
解决办法
2488
查看次数

标签 统计

c ×1

utf-8 ×1