判断字符串的编码类型(GBK / UTF8)

转载 2011年01月10日 09:46:00
GBK:
_____________________________________________________________
int isgbk(char *s, size_t ns)
{
        if(ns > 2 && (uint8_t)*s >= 0x81 && (uint8_t)*s <= 0xfe
                && (
                        ((uint8_t)*(s+1) >= 0x80 && (uint8_t)*(s+1) <= 0x7e)
                        || ((uint8_t)*(s+1) >= 0xa1 && (uint8_t)*(s+1) <= 0xfe)
                    )
          )
        {
                return 1;
        }
        return 0;
}
_______________________________________________________________
 
bool isGBKCode(const string& strIn)
{
    unsigned char ch1;
    unsigned char ch2;

    if (strIn.size() >= 2)
    {
        ch1 = (unsigned char)strIn.at(0);
        ch2 = (unsigned char)strIn.at(1);
        if (ch1>=129 && ch1<=254 && ch2>=64 && ch2<=254)
            return true;
        else return false;
    }
    else return false;
}
______________________________________________________________
 
 
UTF8:
 
______________________________________________________________
int isutf8(char *s, size_t ns)
{
        uint8_t x = 0, i = 0, j = 0, nbytes = 0, n = 0;

        for(i = 1; i < 7; i++)
        {
                x = (uint8_t)(255 << i);
                if(((uint8_t)*s & x) == x)
                {
                        n = nbytes = (8 - i);
                        for(j = 0; (j < nbytes && j < ns); j++)
                        {
                                if((uint8_t)s[j] <= 0x80 && (uint8_t)s[j] >= 0xc0)break;
                                else n--;
                        }
                        if(n == 0) return nbytes;
                }
        }
        return 0;
}
______________________________________________________________

【Java编程高级进阶】java 获取 string 字符串的编码详解

刚刚研究的一个问题“Java同样的汉字在服务器和本地的电脑上URLencode 出来的结果不一致”也涉及了字符串的编码格式。最简单的方法就是:Charset.defaultCharset();Serv...
  • testcs_dn
  • testcs_dn
  • 2017年01月02日 21:58
  • 14048

Java 获取字符串的编码类型

有时候我们会遇到要获取某段字符串的编码类型 public static String getEncoding(String str) { String encode =...
  • u010982856
  • u010982856
  • 2016年09月23日 09:53
  • 4352

如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)

UTF-8编码的文本文档,有的带有BOM (Byte Order Mark, 字节序标志),即0xEF, 0xBB, 0xBF,有的没有。Windows下的txt文本编辑器在保存UTF-8格式的文本文...
  • jiangqin115
  • jiangqin115
  • 2015年01月13日 21:13
  • 6580

Java中判断字符编码以及转码

java中判断字符编码以及转码                                        java中判断字符编码以及转码Java代码 java中判断...
  • WitsMakeMen
  • WitsMakeMen
  • 2012年11月20日 19:56
  • 13423

c++判断文件编码格式

记事本打开txt文件,然后另存,有四种编码格式可供选择,分别是: ANSI                               无格式定义 对于中文编码格式是GB2312; Unicode ...
  • bladeandmaster88
  • bladeandmaster88
  • 2017年01月28日 21:50
  • 2557

c/c++ 使用boost库实现的一个简单判断字符串编码的方法

自己记录一下,可能在某些情况下不能使用 #include #include #include #include #include "boost/locale.hpp" #include "b...
  • tayinyinyueyue
  • tayinyinyueyue
  • 2017年01月06日 17:49
  • 1165

delphi 编码转换 unicode gbk big5

http://parad1se.bokee.com/6250501.html delphi 编码转换 unicode gbk big5 以下代码在DELPHI 7上调试...
  • l799623787
  • l799623787
  • 2012年11月27日 11:36
  • 1643

delphi GBK 以UTF-8的格式URLENCODE编码

delphi GBK 以UTF-8的格式URLENCODE编码
  • rznice
  • rznice
  • 2016年06月14日 16:44
  • 1832

Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(一)

package com.android.filebrowser;   import java.io.*; import java.net.*;   public class FileEncodi...
  • huangyabin001
  • huangyabin001
  • 2014年06月03日 13:59
  • 5356

判断文本文件是否UTF-8编码

utf-8编码的文本文档,有的带有BOM (Byte Order Mark, 字节序标志),即0xEF, 0xBB,0xBF,有的没有。...
  • zb361419953
  • zb361419953
  • 2017年01月13日 14:45
  • 1507
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:判断字符串的编码类型(GBK / UTF8)
举报原因:
原因补充:

(最多只允许输入30个字)