下载此文档

C++实例-判断字符串是否UTF8编码.docx


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
C++实例:判断字符串是否UTF8编码
编码原理
  先看这个模板:
  UCS-4 range (hex.) UTF-8 octet sequence (binary)
  0000 0000-0000 007F 0xxxxxxx

C++实例:判断字符串是否UTF8编码
编码原理
  先看这个模板:
  UCS-4 range (hex.) UTF-8 octet sequence (binary)
  0000 0000-0000 007F 0xxxxxxx
  0000 0080-0000 07FF 110xxxxx 10xxxxxx
  0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
  0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
  0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
  0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
  编码步骤:
  1) 首先确定需要多少个8bits(octets)
  2) 根据上述模板填充每个octets的高位bits
  3) 把字符的bits填充至x中,字符挨次:低位→高位,UTF8挨次:最终一个octet的最末位x→第一个octet位x
  依据UTF8编码,最多可由6个字节组成,所以UTF8是1-6字节编码组成
  C++代码如下:


  int IsTextUTF8(char* str,ULONGLONG length)
  {
  int i;
  DWORD nBytes=0;//UFT8可用1-6个字节编码,ASCII用一个字节
  UCHAR chr;
  BOOL bAllAscii=TRUE; //假如全部都是ASCII, 说明不是UTF-8
  for(i=0;i=0x80)
  {
  if(chr>=0xFC
  else if(chr>=0xF8)
  nBytes=5;
  else if(chr>=0xF0)
  nBytes=4;
  else if(

C++实例-判断字符串是否UTF8编码 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人夜紫儿
  • 文件大小12 KB
  • 时间2022-06-12