utf-8是unicode实现的一种方案,简单来说unicode规定了编码的字的数值,采用一一对应的方式使得所有文字都能找到对应的编码值,而utf-8引入了码点的概念,使得码点能够组合成对应的编码值,从而找到对应的文字,通过码点的范围,有组织的得到编码值
一般实现中都把21位码点位数及以上的编码值通过多个码元组合得到,这里直接使用uint32_t将其组合在一起
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdint.h>
#define IS_ONE2NINE(ch) ((ch >= '0') && (ch <= '9'))
#define IS_A2F(ch) ((ch >= 'A') && (ch <= 'F'))
#define IS_a2f(ch) ((ch >= 'a') && (ch <= 'f'))
#define IS_ONE