#include #include "gbk_to_utf8.h" #include "utf8_to_gbk.h" #include "RK_encode.h" int RK_encode_is_utf8(char *buf, const int size) { int i = 0; int bit1num = 0; unsigned char temp = 0; if ((size == 0) || (*buf == '\0')) { return 1; } for (i = 0; i < size; i++) { if ((!bit1num) && ((buf[i] & 0x80) == 0)) { continue; } else if ((bit1num) && ((buf[i] & 0xc0) == 0x80)) { bit1num--; continue; } else if ((bit1num) && ((buf[i] & 0xc0) != 0x80)) { return 0; } else { temp = buf[i] & 0xff; bit1num = 0; while ((temp << bit1num) & 0x80) { bit1num++; if(bit1num > 6){ return 0; } } if(bit1num < 2) { return 0; } bit1num--; } } if(bit1num) return 0; return 1; } int RK_encode_gbk_to_utf8(unsigned char* src, int len, unsigned char* dst) { return gbk_to_utf8(src, len, dst); } int RK_encode_utf8_to_gbk(unsigned char* src, int len, unsigned char* dst) { return utf8_to_gbk(src, len, dst); }