锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鎬庢牱瀛︿範浣跨敤libiconv搴擄紵瀵逛簬鍒氭帴瑙﹀埌浜烘潵璇達紝榪欑瘒鏂囩珷涓嶅Θ鍘葷湅涓鐪嬶紝鑻ュ凡緇忕敤鍒拌繃璇ュ簱鐨勪漢錛屽湪搴旂敤鐨勮繃紼嬩腑鍙兘閬囧埌涓浜涢棶棰橈紝鎴戜滑鍙互涓璧鋒潵鎺㈣錛屾垜鐨勮仈緋繪柟寮忔槸 cnangel@gmail.com 銆?span lang="EN-US">
鍑犱釜鍑芥暟鍘熷瀷錛?span lang="EN-US">
iconv_t iconv_open(const char *tocode, const char *fromcode);
size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
int iconv_close(iconv_t cd);
鍏朵腑錛?span lang="EN-US">
iconv_open鏄墦寮涓涓紪鐮佹祦錛岀被浼間簬鎵撳紑涓涓紪鐮佺閬擄紙閫氶亾錛夛紝鍑洪敊鍒欒繑鍥?span lang="EN-US"> -1錛?span lang="EN-US">
iconv鐢ㄤ簬鍏蜂綋杈撳叆鐨勮漿鎹紝濡傛灉鍑洪敊錛屽垯榪斿洖 -1錛屽惁鍒欒繑鍥?span lang="EN-US"> 0錛?span lang="EN-US">
iconv_close鏄叧闂綆¢亾錛堥氶亾錛夈?span lang="EN-US">
涓句釜渚嬪瓙錛?span lang="EN-US">
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iconv.h>
#define OUTLEN 255
int covert(char *, char *, char *, size_t , char *, size_t );
int main(int argc, char *argv[])
{
char *input = "涓浗";
size_t len = strlen(input);
char *output = (char *)malloc(OUTLEN);
covert("UTF-8", "GBK", input, len, output, OUTLEN);
printf("%s\n", output);
return 0;
}
int covert(char *desc, char *src, char *input, size_t ilen, char *output, size_t olen)
{
char **pin = &input;
char **pout = &output;
iconv_t cd = iconv_open(desc, src);
if (cd == (iconv_t)-1)
{
return -1;
}
memset(output, 0, olen);
if (iconv(cd, pin, &ilen, pout, &olen)) return -1;
iconv_close(cd);
return 0;
}
榪欓噷闈?span lang="EN-US">covert鍑芥暟灝辨槸鐢ㄤ簬灝嗙紪鐮佽繘琛岃漿鎹紝鍏朵腑瑕佹敞鎰忕殑鍦版柟鏄?span lang="EN-US">iconv鍑芥暟鐨勪紶閫掑弬鏁幫細
1錛?span lang="EN-US">iconv浼犻掓湁5涓弬鏁幫紱
2錛岀3涓弬鏁板拰絎?span lang="EN-US">5涓弬鏁頒竴鑸槸input鍜?span lang="EN-US">output瀹為檯鍒嗛厤鐨勫ぇ灝忥紝涓鑸槸 sizeof(type)*strlen(string)錛?span lang="EN-US">
3錛岀4涓弬鏁版槸涓嶈兘鐩存帴浼犻掓寚閽堢殑鍦板潃錛屽洜涓?span lang="EN-US">iconv鍑芥暟鑳藉鏀瑰彉鎸囬拡鐨勫鹼紝鎵浠ラ渶瑕佸鍒朵竴浠芥寚閽堝彉閲忥紱
濡傛灉瀵逛簬澶ч噺闇瑕佽漿鎹㈢殑緙栫爜錛屼笂榪板嚱鏁?span lang="EN-US">covert涓嶉傚悎璇ユ柟寮忥紝涓鏄唴瀛樼殑闄愬埗涓嶈兘涓嬈¤皟鐢紝浜屾槸鑻ュ垎澶氭璋冪敤浼氶綣佹墦寮涓涓紪鐮佺閬擄紙閫氶亾錛夛紝瀵艱嚧璧勬簮嫻垂錛屾渶濂界殑鍔炴硶榪樻槸鎷嗗紑璇ュ嚱鏁版牴鎹儏鍐典嬌鐢ㄣ?span lang="EN-US">
榪欓噷琛ュ厖涓涓嬩唬鐮侊細
translateSP.h錛?span lang="EN-US">
#ifndef __TRANSLATESP_H_
#define __TRANSLATESP_H_
#include <iconv.h>
class TranslateSP
{
public:
TranslateSP():i_cd(0){}
TranslateSP(const char *from_charset,const char *to_charset)
{
i_cd = iconv_open(to_charset, from_charset);
if ((iconv_t)-1 == i_cd) printf("iconv open error!\n");
}
~TranslateSP()
{
if (i_cd)
iconv_close(i_cd);
}
public:
size_t translate(char *src, size_t srcLen, char *desc, size_t descLen);
size_t convert(const char *from_charset, const char *to_charset,
char *src, size_t srcLen, char *desc, size_t descLen);
private:
iconv_t i_cd;
};
#endif
translateSP.cpp錛?span lang="EN-US">
#include "translateSP.h"
#define MAX_LEN 200
size_t TranslateSP::translate(char *src, size_t srcLen, char *desc, size_t descLen)
{
char **inbuf = &src;
char **outbuf = &desc;
memset(desc, 0, descLen);
return iconv(i_cd, inbuf, &srcLen, outbuf, &descLen);
}
size_t TranslateSP::convert(const char *from_charset, const char *to_charset,
char *src, size_t srcLen, char *desc, size_t descLen)
{
char **inbuf = &src;
char **outbuf = &desc;
iconv_t cd = iconv_open(to_charset, from_charset);
if ((iconv_t)-1 == cd) return (size_t)-1;
memset(desc, 0, descLen);
size_t n = iconv(cd, inbuf, &srcLen, outbuf, &descLen);
iconv_close(cd);
return n;
}
int main(int argc, char *argv[])
{
char *str = "鎴戠埍zhong鍥?span lang="EN-US">! 錛咃純錛狅純";
char *str1 = "i澶ч噺闇瑕佽漿鎹㈢殑緙栫爜";
char *str2 = "鍑芥暟灝辨槸鐢ㄤ簬灝?span lang="EN-US">hello榪涜杞崲";
char newstr[MAX_LEN];
TranslateSP tsp;
tsp.convert("utf-8", "gbk", str, strlen(str), newstr, MAX_LEN);
printf("%s\n", newstr);
TranslateSP newtsp("UTF-8", "GBK");
newtsp.translate(str1, strlen(str1), newstr, MAX_LEN);
printf("%s\n", newstr);
newtsp.translate(str2, strlen(str2), newstr, MAX_LEN);
printf("%s\n", newstr);
return 0;
}
緙栬瘧錛?span lang="EN-US">
g++ translateSP.cpp -o test
./test
鎴戠埍zhong鍥?span lang="EN-US">! 錛咃純錛狅純
i澶ч噺闇瑕佽漿鎹㈢殑緙栫爜
鍑芥暟灝辨槸鐢ㄤ簬灝?span lang="EN-US">hello榪涜杞崲
(浠ヤ笂杈撳嚭鏄?span lang="EN-US">GBK緙栫爜)
銆銆//
銆銆/*
銆銆鍙傝冩枃鐚細
銆銆姹夊瓧鐨勭紪鐮佸拰琛ㄧず
銆銆1)姹夊瓧浜ゆ崲鐮?span lang="EN-US">(鍥芥爣鐮?span lang="EN-US">) 姹夊瓧浜ゆ崲鐮?span lang="EN-US">(鍥芥爣鐮?span lang="EN-US">)涓昏鐢ㄤ簬姹夊瓧淇℃伅浜ゆ崲銆?span lang="EN-US">
銆銆鍥芥爣鐮侊細浠ュ浗瀹舵爣鍑嗗眬1980騫撮甯冪殑銆婁俊鎭氦鎹㈢敤姹夊瓧緙栫爜瀛楃闆?span lang="EN-US">"鍩烘湰闆嗐?span lang="EN-US">(浠e彿涓?span lang="EN-US">GB2312 80)瑙勫畾鐨勬眽瀛椾氦鎹㈢爜浣滀負鍥藉鏍囧噯姹夊瓧緙栫爜銆?GB2312 80涓叡鏈?span lang="EN-US">7445涓瓧絎︾鍙鳳細 姹夊瓧絎﹀彿6763涓?涓綰ф眽瀛?span lang="EN-US">3755涓?span lang="EN-US">(鎸夋眽璇嫾闊沖瓧姣嶉『搴忔帓鍒?span lang="EN-US">) 浜岀駭姹夊瓧3008涓?span lang="EN-US">(鎸夐儴棣栫瑪鍒掗『搴忔帓鍒?span lang="EN-US">) 闈炴眽瀛楃鍙?span lang="EN-US">682涓?span lang="EN-US"> GB2312 80瑙勫畾錛屾墍鏈夌殑鍥芥爣鐮佹眽瀛楀強絎﹀彿緇勬垚涓涓?span lang="EN-US">94 94鐨勬柟闃點傚湪姝ゆ柟闃典腑錛屾瘡涓琛岀О涓轟竴涓?span lang="EN-US">"鍖?span lang="EN-US">"錛屾瘡涓鍒楃О涓轟竴涓?span lang="EN-US">"浣?span lang="EN-US">"銆傝繖涓柟闃靛疄闄呬笂緇勬垚涓涓湁94涓尯(緙栧彿鐢?span lang="EN-US">01鍒?span lang="EN-US">94)錛屾瘡涓尯鏈?span lang="EN-US">94涓綅(緙栧彿鐢?span lang="EN-US">01鍒?span lang="EN-US">94)鐨勬眽瀛楀瓧絎﹂泦銆?涓涓眽瀛楁墍鍦ㄧ殑鍖哄彿鍜屼綅鍙風殑緇勫悎灝辨瀯鎴愪簡璇ユ眽瀛楃殑"鍖轟綅鐮?span lang="EN-US">"銆傚叾涓紝楂樹袱浣嶄負鍖哄彿錛屼綆涓や綅涓轟綅鍙楓傝繖鏍峰尯浣嶇爜鍙互鍞竴鍦扮‘瀹氭煇涓姹夊瓧鎴栧瓧絎?span lang="EN-US">;鍙嶄箣錛屼換浣曚竴涓眽瀛楁垨絎﹀彿閮藉搴斾竴涓敮涓鐨勫尯浣嶇爜錛屾病鏈夐噸鐮併?span lang="EN-US">
銆銆鍖轟綅鐮佸垎甯冩儏鍐靛涓嬶細
銆銆鍖?鍙?鍐?瀹?span lang="EN-US"> 1鍖?閿洏涓婃病鏈夌殑鍚勭絎﹀彿 2鍖?鍚勭搴忓彿 3鍖?閿洏涓婄殑鍚勭絎﹀彿(鎸変腑鏂囨柟寮忕粰鍑?span lang="EN-US">) 4 -5鍖?鏃ユ枃瀛楁瘝 6鍖?甯岃厞瀛楁瘝 7鍖?淇勬枃瀛楁瘝 8鍖?鏍囪瘑鎷奸煶澹拌皟鐨勬瘝闊沖強鎷奸煶瀛楁瘝鍚嶇О 9鍖?鍒惰〃絎﹀彿 10- 15鍖?鏈敤 16-55鍖?涓綰ф眽瀛?span lang="EN-US">(鎸夋嫾闊沖瓧姣嶉『搴忔帓鍒?span lang="EN-US">) 56- 87鍖?浜岀駭姹夊瓧(鎸夐儴棣栫瑪鍒掗『搴忔帓鍒?span lang="EN-US">) 88- 94鍖?鑷畾涔夋眽瀛?span lang="EN-US">
銆銆鐢變笂鍙互鐪嬪嚭錛屾墍鏈夋眽瀛椾笌絎﹀彿鐨?span lang="EN-US">94涓尯錛屽彲浠ュ垎涓哄洓涓粍錛?span lang="EN-US">
銆銆鈶?/span>1 -15鍖猴細涓哄浘褰㈢鍙峰尯銆傚叾涓?span lang="EN-US">1 9鍖轟負鏍囧噯絎﹀彿鍖?span lang="EN-US">;10 15鍖轟負鑷畾涔夌鍙峰尯銆?span lang="EN-US">
銆銆鈶?/span>16 -55鍖猴細涓轟竴綰ф眽瀛楀尯錛屽寘鍚?span lang="EN-US">3755涓眽瀛椼傝繖浜涘尯涓殑姹夊瓧鎸夋眽璇嫾闊抽『搴忔帓搴忥紝鍚岄煶瀛楁寜絎旂敾欏哄簭鍒楀嚭銆?span lang="EN-US">
銆銆鈶?/span>56 -87鍖猴細涓轟簩綰ф眽瀛楀尯錛屽寘鍚?span lang="EN-US">3008涓眽瀛椼傝繖浜涘尯涓殑姹夊瓧鏄寜閮ㄩ絎斿垝欏哄簭鎺掑簭鐨勩?span lang="EN-US">
銆銆鈶?/span>88 -94鍖猴細涓鴻嚜瀹氫箟姹夊瓧鍖恒?span lang="EN-US">
銆銆鍥芥爣鐮佽瀹氾紝姣忎釜姹夊瓧(鍖呮嫭闈炴眽瀛楃殑涓浜涚鍙?span lang="EN-US">)鐢?span lang="EN-US">2瀛楄妭浠g爜琛ㄧず銆傛瘡涓瓧鑺傜殑鏈楂樹綅涓?span lang="EN-US">0錛屽彧浣跨敤浣?span lang="EN-US">7浣嶏紝鑰屼綆7浣嶇殑緙栫爜涓張鏈?span lang="EN-US">34涓傜敤浜庢帶鍒剁敤鐨勶紝榪欐牱姣忎釜瀛楄妭鍙湁27 - 34 = 94涓紪鐮佺敤浜庢眽瀛椼?span lang="EN-US">2涓瓧鑺傚氨鏈?span lang="EN-US">94 94=8836涓眽瀛楃紪鐮併傚湪琛ㄧず涓涓眽瀛楃殑2涓瓧鑺備腑錛岄珮瀛楄妭瀵瑰簲緙栫爜琛ㄤ腑鐨勮鍙鳳紝縐頒負鍖哄彿;浣庡瓧鑺傚搴旂紪鐮佽〃涓殑鍒楀彿錛岀О涓轟綅鍙楓?span lang="EN-US">
銆銆姹夊瓧鍥芥爣鐮佺殑鑼冨洿鐢ㄤ簩榪涘埗琛ㄧず鏄細 00100001 00100001 01111110 01111110 (1+32)10 (1+32)10 (94+32)10 (94+32)10 7 浣?span lang="EN-US">ASCII鐮佹槸128涓瓧絎︾粍鎴愮殑瀛楃闆嗐傚叾涓紪鐮佸?span lang="EN-US">0 31(00000000 00011111)涓嶅搴斾換浣曞嵃鍒峰瓧絎︼紝閫氬父縐頒負鎺у埗絎︼紝鐢ㄤ簬璁$畻鏈洪氫俊涓殑閫氫俊鎺у埗鎴栧璁$畻鏈鴻澶囩殑鍔熻兘鎺у埗銆傜紪鐮佸?span lang="EN-US">32(00100000)鏄┖鏍煎瓧絎?span lang="EN-US">SP銆傜紪鐮佸?span lang="EN-US">127(1111111)鏄垹闄ゅ瓧絎?span lang="EN-US">DEL銆?span lang="EN-US">
銆銆姹夊瓧鍥芥爣鐮佺殑璧峰浜岃繘鍒朵綅緗夋嫨00100001鍗?span lang="EN-US">(33)10鏄負浜嗚煩榪?span lang="EN-US">ASCII鐮佺殑32涓帶鍒跺瓧絎﹀拰絀烘牸瀛楃銆傛墍浠ワ紝姹夊瓧鍥芥爣鐮佺殑楂樹綅鍜屼綆浣嶅垎鍒瘮瀵瑰簲鐨勫尯浣嶇爜澶?span lang="EN-US">(32)10鎴?span lang="EN-US">(00100000)2鎴?span lang="EN-US">(20)H錛屽嵆錛?鍥芥爣鐮侀珮浣?span lang="EN-US"> = 鍖虹爜 + 20H (H琛ㄧず鍗佸叚榪涘埗) 鍥芥爣鐮佷綆浣?span lang="EN-US"> = 浣嶇爜 + 20H
銆銆2) 姹夊瓧鏈哄唴鐮?span lang="EN-US">(鍐呯爜)(姹夊瓧瀛樺偍鐮?span lang="EN-US">)
銆銆姹夊瓧鏈哄唴鐮?span lang="EN-US">(鍐呯爜)(姹夊瓧瀛樺偍鐮?span lang="EN-US">)鐨勪綔鐢ㄦ槸緇熶竴浜嗗悇縐嶄笉鍚岀殑姹夊瓧杈撳叆鐮佸湪璁$畻鏈哄唴閮ㄧ殑琛ㄧず銆備負浜嗗皢姹夊瓧鐨勫悇縐嶈緭鍏ョ爜鍦ㄨ綆楁満鍐呴儴緇熶竴璧鋒潵錛屽氨鏈変簡涓撶敤浜庤綆楁満鍐呴儴瀛樺偍姹夊瓧浣跨敤鐨勬眽瀛楁満鍐呯爜錛岀敤浠ュ皢杈撳叆鏃朵嬌鐢ㄧ殑澶氱姹夊瓧杈撳叆鐮佺粺涓杞崲鎴愭眽瀛楁満鍐呯爜榪涜瀛樺偍錛屼互鏂逛究鏈哄唴鐨勬眽瀛楀鐞嗘眽瀛楁満鍐呯爜鏄湪璁$畻鏈哄唴閮ㄥ瓨鍌ㄣ佸鐞嗙殑浠g爜銆傝綆楁満鏃㈣澶勭悊姹夊瓧錛屽張瑕佸鐞嗚嫳鏂囥傚洜姝よ綆楁満蹇呴』鑳藉尯鍒眽瀛楀瓧絎﹀拰鑻辨枃瀛楃銆傝嫳鏂囧瓧絎︾殑鐨勬満鍐呯爜鏄渶楂樹負涓?span lang="EN-US">0鐨?span lang="EN-US">8浣?span lang="EN-US">ASCII鐮併備負浜嗕笉涓?span lang="EN-US">7浣?span lang="EN-US">ASCII鐮佸彂鐢熷啿紿侊紝鎶婂浗鏍囩爜姣忎釜瀛楄妭鐨勬渶楂樹綅鐢?span lang="EN-US">0鏀逛負1錛屽叾浣欎綅涓嶅彉鐨勭紪鐮佷綔涓烘眽瀛楀瓧絎︾殑鏈哄唴鐮併?span lang="EN-US">
銆銆姹夊瓧鏈哄唴鐮佺殑鑼冨洿鐢ㄤ簩榪涘埗琛ㄧず鏄細 10100001 10100001 11111110 11111110 鏈哄唴鐮佺殑楂樹綅鍜屼綆浣嶆瘮瀵瑰簲鐨勫浗鏍囩爜鐨勯珮浣嶅拰浣庝綅澶?span lang="EN-US">(128)10鎴?span lang="EN-US">(10000000)2鎴?span lang="EN-US">(80)H 鍗籌細 鏈哄唴鐮侀珮浣?span lang="EN-US"> = 鍥芥爣鐮侀珮浣?span lang="EN-US"> + 80H 鏈哄唴鐮佷綆浣?span lang="EN-US"> = 鍥芥爣鐮佷綆浣?span lang="EN-US"> + 80H 鍙堝洜涓猴細 鍥芥爣鐮侀珮浣?span lang="EN-US"> = 鍖虹爜 + 20H 鍥芥爣鐮佷綆浣?span lang="EN-US"> = 浣嶇爜 + 20H 鎵浠ワ細 鏈哄唴鐮侀珮浣?span lang="EN-US"> = 鍖虹爜 + A0H 鏈哄唴鐮佷綆浣?span lang="EN-US"> = 浣嶇爜 + A0H 涔熷氨鏄錛屾満鍐呯爜楂樹綅鍜屾満鍐呯爜浣庝綅鍒嗗埆姣斿搴旂殑鍖虹爜鍜屼綅鐮佸ぇ(160)10鎴?span lang="EN-US">(10100000)2鎴?span lang="EN-US"> (A0)H 渚嬪錛氭眽瀛?span lang="EN-US">"鍟?span lang="EN-US">"鐨勫尯浣嶇爜涓?span lang="EN-US">"1601"錛屽叾涓尯鐮佷負(16)10鎴?span lang="EN-US">(10)H錛屼綅鐮佷負(01)10鎴?span lang="EN-US">(01)H銆?鍒欙細 鏈哄唴鐮侀珮浣?span lang="EN-US"> = 10H + A0H = B0H 鏈哄唴鐮佷綆浣?span lang="EN-US"> = 01H + A0H = A1H 鎵浠ワ細 鏈哄唴鐮?span lang="EN-US">= B
| 浠ヤ笅鏄紩鐢ㄧ墖孌碉細 |
銆銆3) 姹夊瓧杈撳叆鐮?span lang="EN-US">(澶栫爜)
銆銆姹夊瓧杈撳叆鐮?span lang="EN-US">(澶栫爜)鏄負浜嗛氳繃閿洏瀛楃鎶婃眽瀛楄緭鍏ヨ綆楁満鑰岃璁$殑涓縐嶇紪鐮併?鑻辨枃杈撳叆鏃訛紝鐩歌緭鍏ヤ粈涔堝瓧絎︿究鎸変粈涔堥敭錛岃緭鍏ョ爜鍜屾満鍐呯爜涓鑷淬傛眽瀛楄緭鍏ユ椂錛屽彲鑳借鎸夊嚑涓敭鎵嶈兘杈撳叆涓涓眽瀛椼傛眽瀛楄緭鍏ユ柟妗堟湁鎴愮櫨涓婂崈涓紝浣嗘槸榪欏崈宸竾鍒殑澶栫爜杈撳叆榪涜綆楁満鍚庨兘浼氳漿鎹㈡垚緇熶竴鐨勫唴鐮併?姹夊瓧杈撳叆鏂規澶ц嚧鍙垎涓轟互涓?span lang="EN-US">4縐嶇被鍨嬶細
銆銆(1) 闊崇爜錛氬鍏ㄦ嫾銆佸弻鎷箋佸井杞嫾闊崇瓑
銆銆(2) 褰㈢爜錛氬浜旂瑪瀛楀瀷銆侀儜鐮併佽〃褰㈢爜絳?span lang="EN-US">
銆銆(3) 闊沖艦鐮侊細濡傛櫤鑳?span lang="EN-US">ABC銆佽嚜鐒剁爜絳?span lang="EN-US">
銆銆(4) 鏁板瓧鐮侊細濡傚尯浣嶇爜銆佺數鎶ョ爜絳?span lang="EN-US">
銆銆4) 姹夊瓧瀛楀艦鐮?span lang="EN-US">(杈撳嚭鐮?span lang="EN-US">)
銆銆姹夊瓧瀛楀艦鐮?span lang="EN-US">(杈撳嚭鐮?span lang="EN-US">)鐢ㄤ簬姹夊瓧鐨勬樉紺哄拰鎵撳嵃錛屾槸姹夊瓧瀛楀艦鐨勬暟瀛楀寲淇℃伅銆?姹夊瓧鐨勫唴鐮佹槸鐢ㄦ暟瀛椾唬鐮佹潵琛ㄧず姹夊瓧錛屼絾鏄負浜嗗湪杈撳嚭鏃惰浜轟滑鐪嬪埌姹夊瓧錛屽氨蹇呴』杈撳嚭姹夊瓧鐨勫瓧褰€傚湪姹夊瓧緋葷粺涓紝涓鑸噰鐢ㄧ偣闃墊潵琛ㄧず瀛楀艦銆?span lang="EN-US"> 16 *16姹夊瓧鐐歸樀紺烘剰 16 * 16鐐歸樀瀛楀艦鐨勫瓧瑕佷嬌鐢?span lang="EN-US">32涓瓧鑺?span lang="EN-US">(16 * 16/8= 32)瀛樺偍錛?span lang="EN-US">24 * 24鐐歸樀瀛楀艦鐨勫瓧瑕佷嬌鐢?span lang="EN-US">72涓瓧鑺?span lang="EN-US">(24 * 24/8=72)瀛樺偍銆?span lang="EN-US">
銆銆涓鑸潵璇達紝琛ㄧ幇姹夊瓧鏃朵嬌鐢ㄧ殑鐐歸樀瓚婂ぇ錛屽垯姹夊瓧瀛楀艦鐨勮川閲忎篃瓚婂ソ錛屽綋鐒舵瘡涓眽瀛楃偣闃墊墍闇鐨勫瓨鍌ㄩ噺涔熻秺澶с?span lang="EN-US">
銆銆5) 姹夊瓧鍦板潃鐮?span lang="EN-US">
銆銆姹夊瓧鍦板潃鐮佹槸鎸囨眽瀛楀簱(榪欓噷涓昏鎸囨暣瀛楀艦鐨勭偣闃靛紡瀛楁ā搴?span lang="EN-US">)涓瓨鍌ㄦ眽瀛楀瓧褰俊鎭殑閫昏緫鍦板潃銆傚湪姹夊瓧搴撲腑錛屽瓧褰俊鎭兘鏄寜涓瀹氶『搴?span lang="EN-US">(澶у鏁版寜鏍囧噯姹夊瓧浜ゆ崲鐮佷腑姹夊瓧鐨勬帓鍒楅『搴?span lang="EN-US">)榪炵畫瀛樻斁鍦ㄥ瓨鍌ㄤ粙璐ㄤ笂鐨勶紝鎵浠ユ眽瀛楀湴鍧鐮佷篃澶у鏄繛緇湁搴忕殑錛岃屼笖涓庢眽瀛楀唴鐮侀棿鏈夌潃綆鍗曠殑瀵瑰簲鍏崇郴錛屼互綆鍖栨眽瀛楀唴鐮佸埌姹夊瓧鍦板潃鐮佺殑杞崲銆?span lang="EN-US">
| 浠ヤ笅鏄紩鐢ㄧ墖孌碉細 |
c++閫氬父浣跨敤鐨勬槸涓夌緙栫爜鏂瑰紡錛屽垎鍒槸SBCS(single byte character set),MBCS(multi-byte characterset)鍜?span lang="EN-US">Unicode瀛楃闆嗐?span lang="EN-US">SBCS鏄竴涓瓧鑺備竴涓瓧絎︼紝MBCS鏄嚑涓瓧鑺備竴涓瓧絎︼紝鍙兘鏄竴涓紝涓や釜錛屼笁涓笉絳夛紝浣嗘槸瀹為檯涓婏紝緇濆ぇ澶氭暟鏃跺欎嬌鐢ㄤ袱涓瓧鑺傜殑錛屾墍浠ユ湁鏃跺欑湅鍒?span lang="EN-US">DBCS(double-byte character set)浠f浛MBCS涔熶笉濂囨紱Unicode涓寰嬫槸涓や釜瀛楄妭緙栫爜銆傚湪windows nt鍐呮牳涓紝API涓寰嬩嬌鐢ㄧ殑鏄?span lang="EN-US">unicode緙栫爜錛屾墍浠ュ鏋滀綘鍦ㄧ紪鍐欒蔣浠惰繃紼嬩腑浣跨敤闈?span lang="EN-US">unicode緙栫爜鏂瑰紡錛岀郴緇熶篃浼氳嚜鍔ㄨ漿鎹㈡垚unicode鎵ц錛岀劧鍚庤繑鍥炵殑緇撴瀯鍐嶈漿鎹負浣犱嬌鐢ㄧ殑綾誨瀷銆傚崟瀛楄妭琛ㄧず鐢?span lang="EN-US">char錛?span lang="EN-US">unicode浣跨敤wchar_t.鎴戜滑鏄湪鍗曞瓧鑺傜殑鍏夎姃涓嬫垚闀胯搗鏉ョ殑錛屼竴鏃墮棿瀹屽叏鎶涘純鍗曞瓧鑺傛湭鍏嶉毦浠ユ帴鍙楋紝浣嗘槸鏈変簺鏃跺欐垜浠張涓嶅彲閬垮厤鐨勯渶瑕佷嬌鐢?span lang="EN-US">unicode瀛楃闆嗗悎錛岄偅涔?span lang="EN-US">ms鎻愪緵鐨勮В鍐沖姙娉曟槸娉沖畯錛?span lang="EN-US">TChar
鎴戜滑鐪嬬湅浠栫殑瀹氫箟錛?span lang="EN-US">
#ifdef UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
ok錛屼竴鍒囬棶棰橀兘瑙e喅浜嗭紝鎴戜滑鍙渶瑕佸畾涔?span lang="EN-US">UNICODE灝變竴鏍蜂嬌鐢?span lang="EN-US">wchar_t,鏄緢鏂逛究銆傚彟澶栵紝鍦?span lang="EN-US">windows鐨?span lang="EN-US">COM涓嬌鐢ㄧ殑涓寰嬫槸unicode錛屼絾鏄?span lang="EN-US">MFC榛樿鐨勭‘瀹?span lang="EN-US">MBCS錛屾墍浠ヤ綘鐢?span lang="EN-US">MFC鍐欑殑綾誨簱濡傛灉鏀懼埌浜?span lang="EN-US">COM涓嬶紝鏈変簺瀛楃鐨勬牸寮忓寲鏂瑰紡鎴栬呰繑鍥炲奸敊璇殑錛屽師鍥犲氨鏄?span lang="EN-US">com涓寰嬩嬌鐢?span lang="EN-US">unicode錛岃?span lang="EN-US">unicode浣跨敤wchar_t('00')緇撳熬錛?span lang="EN-US">char鍗存槸浣跨敤'0'緇撳熬鐨勩備竴鑸儏鍐典笅錛屾櫘閫氬瓧絎﹂渶瑕佸姞杞?span lang="EN-US">_T瀹忔墠鑳芥甯歌繍琛岋紝姣斿MFC涓綘鍐欓亾S = "FSDFSDF",閭d箞璇ョ被杞埌COM涓嬶紝闇瑕佸啓S = _T("FSDFSDF")錛涙墠鍙互銆傛垜浠彲浠ユ兂璞″畯_T璺?span lang="EN-US">TCHAr鐨勫姛鑳戒竴鏍鳳紝濡傛灉浣跨敤UNICODE灝辮嚜鍔ㄥ湪constant string鍓嶉潰鍔犱笂L錛屽惁鍒欏氨鐩存帴浣跨敤銆?span lang="EN-US">
鎴戜滑璇翠竴浜涘皬闂錛?span lang="EN-US">
VC6鐢熸垚鐨?span lang="EN-US">console application鏄?span lang="EN-US">
int main(int argc, char* argv[])
VS C++ 2005鐢熸垚鐨勬槸
int _tmain(int argc, _TCHAR* argv[])
鏄劇劧錛岀敤_tmain鏇村ソ錛?span lang="EN-US">why?
You can also use _tmain, which is defined in TCHAR.h. _tmain will resolve to main unless _UNICODE is defined, in which case _tmain will resolve to wmain.(http://msdn2.microsoft.com/en-us/library/6wd819wh.aspx#).
鎴戜滑涔熶細甯稿父鐪嬪埌濡備笅涓浜涘瓧絎︾被鍨嬶紝
WCHAR wchar_t wchar_t
LPSTR zero-terminated string of char (char*) zero-terminated string of char (char*)
LPCSTR constant zero-terminated string of char (const char*) constant zero-terminated string of char (const char*)
LPWSTR zero-terminated Unicode string (wchar_t*) zero-terminated Unicode string (wchar_t*)
LPCWSTR constant zero-terminated Unicode string (const wchar_t*) constant zero-terminated Unicode string (const wchar_t*)
TCHAR char wchar_t
LPTSTR zero-terminated string of TCHAR (TCHAR*) zero-terminated string of TCHAR (TCHAR*)
LPCTSTR constant zero-terminated string of TCHAR (const TCHAR*) constant zero-terminated string of TCHAR (const TCHAR*)
C 涓鑸唬琛?span lang="EN-US">constant錛?span lang="EN-US">P浠h〃鎸囬拡錛?span lang="EN-US">LP浠h〃闀挎寚閽?span lang="EN-US">,W浠h〃瀹藉瓧絎︼紝涔熷氨鏄?span lang="EN-US">UNICODE錛岃繖涓嬫槸涓嶆槸閮借兘鏄庣櫧榪欎簺鏄共浠涔堢殑浜嗭紵
鎴戜滑涔熶細甯稿父鐪嬪埌_mbsstr()榪欐牱鐨勫嚱鏁幫紝榪欏氨鏄?span lang="EN-US">MBCS瀛楃緙栫爜鐨勫嚱鏁幫紝褰撶劧鍙互澶勭悊SBCS緙栫爜錛屼絾鏄弽涔嬪嵈涓嶈銆傛墍浠ヤ負浜嗕繚闄╄搗瑙侊紝鎴戜滑鍙互浣跨敤_mbsstr浠f浛strstr,浣嗘槸濡傛灉紼嬪簭鍙槸澶勭悊SBCS錛岄偅涔堟樉鐒跺張褰卞搷鏁堢巼錛屾墍浠ュ埌搴曠敤浠涔堟柟寮忓悓鏃舵弧瓚蟲晥鐜囧拰鍙Щ妞嶆э紝鑷繁鎺傞噺鐫鍔炲惂銆?span lang="EN-US">
浠ュ悗浣跨敤C++緙栧啓紼嬪簭錛屽鏋滃嚭鐜頒貢鐮侊紝棣栧厛媯鏌?span lang="EN-US">C++鐨勭紪鐮佺被鍨嬶紝鑰屼笖涓鑸儏鍐典笅閮芥槸緇撴潫絎﹀彿娌℃湁寮勫錛?span lang="EN-US">SBCS鍜?span lang="EN-US">MBCS閮芥槸浠ュ崟瀛楄妭0緇撳熬錛?span lang="EN-US">UNICODE鏄互鍙屽瓧鑺?span lang="EN-US">00緇撳熬鐨勩?span lang="EN-US">
Unicode錛氫袱瀛楄妭琛ㄧず鐨勪笘鐣岄氱敤鐮侊紝瀛樺偍涓烘枃鏈椂浼氭湁榪炰釜瀛楄妭鐨勫ご淇℃伅銆?span lang="EN-US">
UTF-8錛氫竴縐嶄互8涓?span lang="EN-US">bit涓轟竴緇勭殑Unicode鐨勮〃紺烘牸寮忥紝瀛樺偍涓烘湰鏂囨椂鏈変笁涓瓧鑺傜殑澶翠俊鎭?span lang="EN-US">
UTF-16錛?span lang="EN-US">16涓?span lang="EN-US">bit涓轟竴緇?span lang="EN-US">
鍗曡瘝鍏ㄧО錛?span lang="EN-US">
ASCII: American Standard Code Information Interchange
ANSI: American National Standard Institue
GB: Guo Biao
UTF: Unicode Translation Format
========================================================
瀛楃鏄悇縐嶆枃瀛楀拰絎﹀彿鐨勬葷О錛屽寘鎷悇鍥藉鏂囧瓧銆佹爣鐐圭鍙楓佸浘褰㈢鍙楓佹暟瀛楃瓑銆傚瓧絎﹂泦鏄涓瓧絎︾殑闆嗗悎錛屽瓧絎﹂泦縐嶇被杈冨錛屾瘡涓瓧絎﹂泦鍖呭惈鐨勫瓧絎︿釜鏁頒笉鍚岋紝甯歌瀛楃闆嗗悕縐幫細ASCII瀛楃闆嗐?span lang="EN-US">GB2312瀛楃闆嗐?span lang="EN-US">BIG5瀛楃闆嗐?span lang="EN-US"> GB 18030瀛楃闆嗐?span lang="EN-US">Unicode瀛楃闆嗙瓑銆傝綆楁満瑕佸噯紜殑澶勭悊鍚勭瀛楃闆嗘枃瀛楋紝闇瑕佽繘琛屽瓧絎︾紪鐮侊紝浠ヤ究璁$畻鏈鴻兘澶熻瘑鍒拰瀛樺偍鍚勭鏂囧瓧銆?span lang="EN-US">
涓枃鏂囧瓧鏁扮洰澶э紝鑰屼笖榪樺垎涓虹畝浣撲腑鏂囧拰綣佷綋涓枃涓ょ涓嶅悓涔﹀啓瑙勫垯鐨勬枃瀛楋紝鑰岃綆楁満鏈鍒濇槸鎸夎嫳璇崟瀛楄妭瀛楃璁捐鐨勶紝鍥犳錛屽涓枃瀛楃榪涜緙栫爜錛屾槸涓枃淇℃伅浜ゆ祦鐨勬妧鏈熀紜銆傛湰鏂囧皢鎸夌収瀛楃闆嗙殑鏃墮棿欏哄簭璁ㄨ鍑犵鍏稿瀷鐨勫瓧絎﹂泦錛岄夊彇鍑犵浠h〃鎬х殑涓枃瀛楃闆嗭紝鐮旂┒鍘嗗彶鐢辨潵銆佺壒鐐廣佹妧鏈壒寰併?span lang="EN-US">
ASCII 瀛楃闆?span lang="EN-US">
1錛庡悕縐扮殑鐢辨潵
ASCII錛?span lang="EN-US">American Standard Code for Information Interchange錛岀編鍥戒俊鎭簰鎹㈡爣鍑嗕唬鐮侊級鏄熀浜庣綏椹瓧姣嶈〃鐨勪竴濂楃數鑴戠紪鐮佺郴緇熴?span lang="EN-US">
2錛庣壒鐐?span lang="EN-US">
瀹冧富瑕佺敤浜庢樉紺虹幇浠h嫳璇拰鍏朵粬瑗挎璇█銆傚畠鏄幇浠婃渶閫氱敤鐨勫崟瀛楄妭緙栫爜緋葷粺錛屽茍絳夊悓浜庡浗闄呮爣鍑?span lang="EN-US">ISO 646銆?span lang="EN-US">
3錛庡寘鍚唴瀹?span lang="EN-US">
鎺у埗瀛楃錛氬洖杞﹂敭銆侀鏍箋佹崲琛岄敭絳夈?span lang="EN-US">
鍙樉紺哄瓧絎︼細鑻辨枃澶у皬鍐欏瓧絎︺侀樋鎷変集鏁板瓧鍜岃タ鏂囩鍙?span lang="EN-US">
4錛庢妧鏈壒寰?span lang="EN-US">
7浣嶏紙bits錛夎〃紺轟竴涓瓧絎︼紝鍏?span lang="EN-US">128瀛楃
5錛?span lang="EN-US">ASCII鎵╁睍瀛楃闆?span lang="EN-US">
7浣嶇紪鐮佺殑瀛楃闆嗗彧鑳芥敮鎸?span lang="EN-US">128涓瓧絎︼紝涓轟簡琛ㄧず鏇村鐨勬媧插父鐢ㄥ瓧絎﹀ASCII榪涜浜嗘墿灞曪紝ASCII鎵╁睍瀛楃闆嗕嬌鐢?span lang="EN-US">8浣嶏紙bits錛夎〃紺轟竴涓瓧絎︼紝鍏?span lang="EN-US">256瀛楃銆?span lang="EN-US">
ASCII鎵╁睍瀛楃闆嗘瘮ASCII瀛楃闆嗘墿鍏呭嚭鏉ョ殑絎﹀彿鍖呮嫭琛ㄦ牸絎﹀彿銆佽綆楃鍙楓佸笇鑵婂瓧姣嶅拰鐗規畩鐨勬媺涓佺鍙楓?span lang="EN-US">
GB2312 瀛楃闆?span lang="EN-US">
1錛庡悕縐扮殑鐢辨潵
GB2312鍙堢О涓?span lang="EN-US">GB2312-80瀛楃闆嗭紝鍏ㄧО涓恒婁俊鎭氦鎹㈢敤姹夊瓧緙栫爜瀛楃闆?span lang="EN-US">路鍩烘湰闆嗐嬶紝鐢卞師涓浗鍥藉鏍囧噯鎬誨眬鍙戝竷錛??xml:namespace prefix = st1 />
2錛庣壒鐐?span lang="EN-US">
GB2312鏄腑鍥藉浗瀹舵爣鍑嗙殑綆浣撲腑鏂囧瓧絎﹂泦銆傚畠鎵鏀跺綍鐨勬眽瀛楀凡緇忚鐩?span lang="EN-US">99.75%鐨勪嬌鐢ㄩ鐜囷紝鍩烘湰婊¤凍浜嗘眽瀛楃殑璁$畻鏈哄鐞嗛渶瑕併傚湪涓浗澶ч檰鍜屾柊鍔犲潯鑾峰箍娉涗嬌鐢ㄣ?span lang="EN-US">
3錛庡寘鍚唴瀹?span lang="EN-US">
GB2312鏀跺綍綆鍖栨眽瀛楀強涓鑸鍙楓佸簭鍙楓佹暟瀛椼佹媺涓佸瓧姣嶃佹棩鏂囧亣鍚嶃佸笇鑵婂瓧姣嶃佷縿鏂囧瓧姣嶃佹眽璇嫾闊崇鍙楓佹眽璇敞闊沖瓧姣嶏紝鍏?span lang="EN-US"> 7445 涓浘褰㈠瓧絎︺傚叾涓寘鎷?span lang="EN-US">6763涓眽瀛楋紝鍏朵腑涓綰ф眽瀛?span lang="EN-US">3755涓紝浜岀駭姹夊瓧3008涓紱鍖呮嫭鎷変竵瀛楁瘝銆佸笇鑵婂瓧姣嶃佹棩鏂囧鉤鍋囧悕鍙婄墖鍋囧悕瀛楁瘝銆佷縿璇タ閲屽皵瀛楁瘝鍦ㄥ唴鐨?span lang="EN-US">682涓叏瑙掑瓧絎︺?span lang="EN-US">
4錛庢妧鏈壒寰?span lang="EN-US">
錛?span lang="EN-US">1錛夊垎鍖鴻〃紺猴細
GB2312涓鎵鏀舵眽瀛楄繘琛屼簡鈥?/span>鍒嗗尯鈥?/span>澶勭悊錛屾瘡鍖哄惈鏈?span lang="EN-US">94涓眽瀛?span lang="EN-US">/絎﹀彿銆傝繖縐嶈〃紺烘柟寮忎篃縐頒負鍖轟綅鐮併?span lang="EN-US">
鍚勫尯鍖呭惈鐨勫瓧絎﹀涓嬶細01-09鍖轟負鐗規畩絎﹀彿錛?span lang="EN-US">16-55鍖轟負涓綰ф眽瀛楋紝鎸夋嫾闊蟲帓搴忥紱56-87鍖轟負浜岀駭姹夊瓧錛屾寜閮ㄩ/絎旂敾鎺掑簭錛?span lang="EN-US">10-15鍖哄強88-94鍖哄垯鏈湁緙栫爜銆?span lang="EN-US">
錛?span lang="EN-US">2錛夊弻瀛楄妭琛ㄧず
涓や釜瀛楄妭涓墠闈㈢殑瀛楄妭涓虹涓瀛楄妭錛屽悗闈㈢殑瀛楄妭涓虹浜屽瓧鑺傘備範鎯笂縐扮涓瀛楄妭涓?span lang="EN-US">鈥?/span>楂樺瓧鑺?span lang="EN-US">鈥?錛岃岀О絎簩瀛楄妭涓?span lang="EN-US">鈥?/span>浣庡瓧鑺?span lang="EN-US">鈥?/span>銆?span lang="EN-US">
鈥?/span>楂樹綅瀛楄妭鈥?/span>浣跨敤浜?span lang="EN-US">0xA1-0xF7(鎶?span lang="EN-US">01-87鍖虹殑鍖哄彿鍔犱笂0xA0)錛?span lang="EN-US">鈥?/span>浣庝綅瀛楄妭鈥?/span>浣跨敤浜?span lang="EN-US">0xA1-0xFE(鎶?span lang="EN-US">01-94鍔犱笂0xA0)銆?span lang="EN-US">
5錛庣紪鐮佷婦渚?span lang="EN-US">
浠?span lang="EN-US">GB2312瀛楃闆嗙殑絎竴涓眽瀛?span lang="EN-US">鈥?/span>鍟?span lang="EN-US">鈥?/span>瀛椾負渚嬶紝瀹冪殑鍖哄彿16錛屼綅鍙?span lang="EN-US">01錛屽垯鍖轟綅鐮佹槸1601錛屽湪澶у鏁拌綆楁満紼嬪簭涓紝楂樺瓧鑺傚拰浣庡瓧鑺傚垎鍒姞0xA0寰楀埌紼嬪簭鐨勬眽瀛楀鐞嗙紪鐮?span lang="EN-US">0xB
BIG5 瀛楃闆?span lang="EN-US">
1錛庡悕縐扮殑鐢辨潵
鍙堢О澶?st1:chmetcnv w:st="on" tcsc="1" numbertype="3" negative="False" hasspace="False" sourcevalue="5" unitname="鐮?>浜旂爜鎴栦簲澶х爜錛?span lang="EN-US">1984騫寸敱鍙版咕璐㈠洟娉曚漢淇℃伅宸ヤ笟絳栬繘浼氬拰浜旈棿杞歡鍏徃瀹忕 (Acer)銆佺閫?span lang="EN-US"> (MiTAC)銆佷匠浣熾侀浂澹?span lang="EN-US"> (Zero One)銆佸ぇ浼?span lang="EN-US"> (FIC)鍒涚珛錛屾晠縐板ぇ
Big
2錛庣壒鐐?span lang="EN-US">
Big5瀛楃闆嗗叡鏀跺綍13,053涓腑鏂囧瓧錛岃瀛楃闆嗗湪涓浗鍙版咕浣跨敤銆傝愪漢瀵誨懗鐨勬槸璇ュ瓧絎﹂泦閲嶅鍦版敹褰曚簡涓や釜鐩稿悓鐨勫瓧錛?span lang="EN-US">鈥?/span>鍏鈥?0xA461鍙?span lang="EN-US">0xC
3錛庡瓧絎︾紪鐮佹柟娉?span lang="EN-US">
Big
鍚勭紪鐮佽寖鍥村搴旂殑瀛楃綾誨瀷濡備笅錛?span lang="EN-US">0xA140-0xA3BF涓烘爣鐐圭鍙楓佸笇鑵婂瓧姣嶅強鐗規畩絎﹀彿錛屽彟澶栦簬0xA259-0xA261錛屽瓨鏀句簡鍙岄煶鑺傚害閲忚 鍗曚綅鐢ㄥ瓧錛氬厵鍏涘厼鍏濆叀鍏e棫鐡╃硯錛?span lang="EN-US">0xA440-0xC67E涓哄父鐢ㄦ眽瀛楋紝鍏堟寜絎斿垝鍐嶆寜閮ㄩ鎺掑簭錛?span lang="EN-US">0xC940-0xF9D5涓烘甯哥敤姹夊瓧錛屼害鏄厛鎸夌瑪鍒掑啀鎸夐儴棣栨帓搴忋?span lang="EN-US">
4錛?span lang="EN-US">Big5 鐨勫眬闄愭?span lang="EN-US">
灝界Big
渚嬪鍙版咕瑙?span lang="EN-US">鈥?/span>鐫鈥?/span>涓?span lang="EN-US">鈥?/span>钁?span lang="EN-US">鈥?/span>鐨勫紓浣撳瓧錛屾晠娌℃湁鏀跺綍鈥?/span>鐫鈥?/span>瀛椼傚悍鐔欏瓧鍏鎬腑鐨勪竴浜涢儴棣栫敤瀛?span lang="EN-US">(濡?span lang="EN-US">鈥?/span>浜?span lang="EN-US">鈥?/span>銆?span lang="EN-US">鈥?/span>鐤?span lang="EN-US">鈥?/span>銆?span lang="EN-US">鈥?/span>杈?span lang="EN-US">鈥?/span>銆?span lang="EN-US">鈥?/span>鐧?span lang="EN-US">鈥?/span>絳?span lang="EN-US">)銆佸父瑙佺殑浜哄悕鐢ㄥ瓧(濡?span lang="EN-US">鈥?/span>鍫?span lang="EN-US">鈥?/span>銆?span lang="EN-US">鈥?/span>鐓?span lang="EN-US">鈥?/span>銆?span lang="EN-US">鈥?/span>鏍?span lang="EN-US">鈥?/span>銆?span lang="EN-US">鈥?/span>鍠?span lang="EN-US">鈥?/span>絳?span lang="EN-US">) 涔熸病鏈夋敹褰曞埌Big5涔嬩腑銆?span lang="EN-US">
GB18030 瀛楃闆?span lang="EN-US">
1錛庡悕縐扮殑鐢辨潵
GB 18030鐨勫叏縐版槸GB18030-2000銆婁俊鎭氦鎹㈢敤姹夊瓧緙栫爜瀛楃闆嗗熀鏈泦鐨勬墿鍏呫嬶紝鏄垜鍥芥斂搴滀簬
2錛庣壒鐐?span lang="EN-US">
GB 18030瀛楃闆嗘爣鍑嗙殑鍑哄彴緇忚繃騫挎硾鍙備笌鍜岃璇侊紝鏉ヨ嚜鍥藉唴澶栫煡鍚嶄俊鎭妧鏈涓氱殑鍏徃錛屼俊鎭駭涓氶儴鍜屽師鍥藉璐ㄩ噺鎶鏈洃鐫e眬鑱斿悎瀹炴柦銆?span lang="EN-US">
GB 18030瀛楃闆嗘爣鍑嗚В鍐蟲眽瀛椼佹棩鏂囧亣鍚嶃佹湞椴滆鍜屼腑鍥藉皯鏁版皯鏃忔枃瀛楃粍鎴愮殑澶у瓧絎﹂泦璁$畻鏈虹紪鐮侀棶棰樸傝鏍囧噯鐨勫瓧絎︽葷紪鐮佺┖闂磋秴榪?span lang="EN-US">150涓囦釜緙栫爜浣嶏紝鏀跺綍浜?span lang="EN-US">27484涓眽瀛楋紝瑕嗙洊涓枃銆佹棩鏂囥佹湞椴滆鍜屼腑鍥藉皯鏁版皯鏃忔枃瀛椼傛弧瓚充腑鍥藉ぇ闄嗐侀娓佸彴婀俱佹棩鏈拰闊╁浗絳変笢浜氬湴鍖轟俊鎭氦鎹㈠鏂囩銆佸ぇ瀛楅噺銆佸鐢ㄩ斻佺粺涓緙栫爜鏍煎紡鐨勮姹傘傚茍涓斾笌Unicode 3.0鐗堟湰鍏煎錛屽~琛?span lang="EN-US">Unicode鎵╁睍瀛楃瀛楁眹鈥?/span>緇熶竴姹夊瓧鎵╁睍A鈥?/span>鐨勫唴瀹廣傚茍涓斾笌浠ュ墠鐨勫浗瀹跺瓧絎︾紪鐮佹爣鍑嗭紙GB2312錛?span lang="EN-US">GB13000.1錛夊吋瀹廣?span lang="EN-US">
3錛庣紪鐮佹柟娉?span lang="EN-US">
GB 18030鏍囧噯閲囩敤鍗曞瓧鑺傘佸弻瀛楄妭鍜屽洓瀛楄妭涓夌鏂瑰紡瀵瑰瓧絎︾紪鐮併傚崟瀛楄妭閮ㄥ垎浣跨敤0脳00鑷?span lang="EN-US">0脳
4錛庡寘鍚殑鍐呭
鍙屽瓧鑺傞儴鍒嗘敹褰曞唴瀹逛富瑕佸寘鎷?span lang="EN-US">GB13000.1鍏ㄩ儴CJK姹夊瓧20902涓佹湁鍏蟲爣鐐圭鍙楓佽〃鎰忔枃瀛楁弿榪扮13涓佸琛ョ殑姹夊瓧鍜岄儴棣?span lang="EN-US">/鏋勪歡80涓佸弻瀛楄妭緙栫爜鐨勬鍏冪鍙風瓑銆傘銆鍥涘瓧鑺傞儴鍒嗘敹褰曚簡涓婅堪鍙屽瓧鑺傚瓧絎︿箣澶栫殑錛屽寘鎷?span lang="EN-US">CJK緇熶竴姹夊瓧鎵╁厖A鍦ㄥ唴鐨?span lang="EN-US">GB 13000.1涓殑鍏ㄩ儴瀛楃銆?span lang="EN-US">
Unicode瀛楃闆?span lang="EN-US">
1錛庡悕縐扮殑鐢辨潵
Unicode瀛楃闆嗙紪鐮佹槸Universal Multiple-Octet Coded Character Set 閫氱敤澶氬叓浣嶇紪鐮佸瓧絎﹂泦鐨勭畝縐幫紝鏄敱涓涓悕涓?span lang="EN-US"> Unicode 瀛︽湳瀛︿細(Unicode Consortium)鐨勬満鏋勫埗璁㈢殑瀛楃緙栫爜緋葷粺錛屾敮鎸佺幇浠婁笘鐣屽悇縐嶄笉鍚岃璦鐨勪功闈㈡枃鏈殑浜ゆ崲銆佸鐞嗗強鏄劇ず銆傝緙栫爜浜?span lang="EN-US">1990騫村紑濮嬬爺鍙戯紝1994騫存寮忓叕甯冿紝鏈鏂扮増鏈槸
2錛庣壒寰?span lang="EN-US">
Unicode鏄竴縐嶅湪璁$畻鏈轟笂浣跨敤鐨勫瓧絎︾紪鐮併傚畠涓烘瘡縐嶈璦涓殑姣忎釜瀛楃璁懼畾浜嗙粺涓騫朵笖鍞竴鐨勪簩榪涘埗緙栫爜錛屼互婊¤凍璺ㄨ璦銆佽法騫沖彴榪涜鏂囨湰杞崲銆佸鐞嗙殑瑕佹眰銆?span lang="EN-US">
3錛庣紪鐮佹柟娉?span lang="EN-US">
Unicode 鏍囧噯濮嬬粓浣跨敤鍗佸叚榪涘埗鏁板瓧錛岃屼笖鍦ㄤ功鍐欐椂鍦ㄥ墠闈㈠姞涓婂墠緙鈥淯+鈥?/span>錛屼緥濡傚瓧姣?span lang="EN-US">鈥淎鈥?/span>鐨勭紪鐮佷負 004116 鍜屽瓧絎?span lang="EN-US">鈥?鈥?/span>鐨勭紪鐮佷負
4錛?span lang="EN-US">UTF-8 緙栫爜
UTF-8鏄?span lang="EN-US">Unicode鐨勫叾涓竴涓嬌鐢ㄦ柟寮忋?span lang="EN-US"> UTF鏄?span lang="EN-US"> Unicode Translation Format錛屽嵆鎶?span lang="EN-US">Unicode杞仛鏌愮鏍煎紡鐨勬剰鎬濄?span lang="EN-US">
UTF-8渚夸簬涓嶅悓鐨勮綆楁満涔嬮棿浣跨敤緗戠粶浼犺緭涓嶅悓璇█鍜岀紪鐮佺殑鏂囧瓧錛屼嬌寰楀弻瀛楄妭鐨?span lang="EN-US">Unicode鑳藉鍦ㄧ幇瀛樼殑澶勭悊鍗曞瓧鑺傜殑緋葷粺涓婃紜紶杈撱?span lang="EN-US">
UTF-8浣跨敤鍙彉闀垮害瀛楄妭鏉ュ偍瀛?span lang="EN-US"> Unicode瀛楃錛屼緥濡?span lang="EN-US">ASCII瀛楁瘝緇х畫浣跨敤1瀛楄妭鍌ㄥ瓨錛岄噸闊蟲枃瀛椼佸笇鑵婂瓧姣嶆垨瑗塊噷灝斿瓧姣嶇瓑浣跨敤2瀛楄妭鏉ュ偍瀛橈紝鑰屽父鐢ㄧ殑姹夊瓧灝辮浣跨敤3瀛楄妭銆傝緟鍔╁鉤闈㈠瓧絎﹀垯浣跨敤4瀛楄妭銆?span lang="EN-US">
5錛?span lang="EN-US">UTF-16 鍜?span lang="EN-US"> UTF-32 緙栫爜
UTF-32銆?span lang="EN-US">UTF-16 鍜?span lang="EN-US"> UTF-8 鏄?span lang="EN-US"> Unicode 鏍囧噯鐨勭紪鐮佸瓧絎﹂泦鐨勫瓧絎︾紪鐮佹柟妗堬紝UTF-16 浣跨敤涓涓垨涓や釜鏈垎閰嶇殑 16 浣嶄唬鐮佸崟鍏冪殑搴忓垪瀵?span lang="EN-US"> Unicode 浠g爜鐐硅繘琛岀紪鐮侊紱UTF-32 鍗沖皢姣忎竴涓?span lang="EN-US"> Unicode 浠g爜鐐硅〃紺轟負鐩稿悓鍊肩殑 32 浣嶆暣鏁般?span lang="EN-US">
========================================================
浠涔堟槸unicode, GB2312, GBK, ANSI, UTF
鍙戝睍榪囩▼ ASCII 脿 GB2312(BIG5) 脿 GBK脿GB18030
瀛楃蹇呴』緙栫爜鍚庢墠鑳借璁$畻鏈哄鐞嗐傝綆楁満浣跨敤鐨勭己鐪佺紪鐮佹柟寮忓氨鏄綆楁満鐨勫唴鐮併傛棭鏈熺殑璁$畻鏈轟嬌鐢?span lang="EN-US">7浣嶇殑ASCII緙栫爜錛屼負浜嗗鐞嗘眽瀛楋紝紼嬪簭鍛樿璁′簡鐢ㄤ簬綆浣撲腑鏂囩殑GB2312鍜岀敤浜庣箒浣撲腑鏂囩殑big5銆?span lang="EN-US">
GB2312(1980騫?span lang="EN-US">)涓鍏辨敹褰曚簡7445涓瓧絎︼紝鍖呮嫭6763涓眽瀛楀拰682涓叾瀹冪鍙楓傛眽瀛楀尯鐨勫唴鐮佽寖鍥撮珮瀛楄妭浠?span lang="EN-US">B0-F7錛屼綆瀛楄妭浠?span lang="EN-US">A1-FE錛屽崰鐢ㄧ殑鐮佷綅鏄?span lang="EN-US">72*94=6768銆傚叾涓湁5涓┖浣嶆槸D7FA-D7FE銆?span lang="EN-US">
GB2312鏀寔鐨勬眽瀛楀お灝戙?span lang="EN-US">1995騫寸殑姹夊瓧鎵╁睍瑙勮寖GBK1.0鏀跺綍浜?span lang="EN-US">21886涓鍙鳳紝瀹冨垎涓烘眽瀛楀尯鍜屽浘褰㈢鍙峰尯銆傛眽瀛楀尯鍖呮嫭21003涓瓧絎︺?span lang="EN-US">
浠?span lang="EN-US">ASCII銆?span lang="EN-US">GB2312鍒?span lang="EN-US">GBK錛岃繖浜涚紪鐮佹柟娉曟槸鍚戜笅鍏煎鐨勶紝鍗沖悓涓涓瓧絎﹀湪榪欎簺鏂規涓繪槸鏈夌浉鍚岀殑緙栫爜錛屽悗闈㈢殑鏍囧噯鏀寔鏇村鐨勫瓧絎︺傚湪榪欎簺緙栫爜涓紝鑻辨枃鍜屼腑鏂囧彲浠ョ粺涓鍦板鐞嗐傚尯鍒嗕腑鏂囩紪鐮佺殑鏂規硶鏄珮瀛楄妭鐨勬渶楂樹綅涓嶄負0銆傛寜鐓х▼搴忓憳鐨勭О鍛鹼紝GB2312銆?span lang="EN-US">GBK閮藉睘浜庡弻瀛楄妭瀛楃闆?span lang="EN-US"> (DBCS)銆?span lang="EN-US">
2000騫寸殑GB18030鏄彇浠?span lang="EN-US">GBK1.0鐨勬寮忓浗瀹舵爣鍑嗐傝鏍囧噯鏀跺綍浜?span lang="EN-US">27484涓眽瀛楋紝鍚屾椂榪樻敹褰曚簡钘忔枃銆佽挋鏂囥佺淮鍚懼皵鏂囩瓑涓昏鐨勫皯鏁版皯鏃忔枃瀛椼備粠姹夊瓧瀛楁眹涓婅錛?span lang="EN-US">GB18030鍦?span lang="EN-US">GB13000.1鐨?span lang="EN-US">20902涓眽瀛楃殑鍩虹涓婂鍔犱簡CJK鎵╁睍A鐨?span lang="EN-US">6582涓眽瀛楋紙Unicode鐮?span lang="EN-US"> 0x3400-0x4db5錛夛紝涓鍏辨敹褰曚簡27484涓眽瀛椼?span lang="EN-US">
CJK灝辨槸涓棩闊╃殑鎰忔濄?span lang="EN-US">Unicode涓轟簡鑺傜渷鐮佷綅錛屽皢涓棩闊╀笁鍥借璦涓殑鏂囧瓧緇熶竴緙栫爜銆?span lang="EN-US">GB13000.1灝辨槸ISO/IEC 10646-1鐨勪腑鏂囩増錛岀浉褰撲簬Unicode 1.1銆?span lang="EN-US">
GB18030鐨勭紪鐮侀噰鐢ㄥ崟瀛楄妭銆佸弻瀛楄妭鍜?span lang="EN-US">4瀛楄妭鏂規銆傚叾涓崟瀛楄妭銆佸弻瀛楄妭鍜?span lang="EN-US">GBK鏄畬鍏ㄥ吋瀹圭殑銆?span lang="EN-US">4瀛楄妭緙栫爜鐨勭爜浣嶅氨鏄敹褰曚簡CJK鎵╁睍A鐨?span lang="EN-US">6582涓眽瀛椼備緥濡傦細UCS鐨?span lang="EN-US">0x3400鍦?span lang="EN-US">GB18030涓殑緙栫爜搴旇鏄?span lang="EN-US">8139EF30錛?span lang="EN-US">UCS鐨?span lang="EN-US">0x3401鍦?span lang="EN-US">GB18030涓殑緙栫爜搴旇鏄?span lang="EN-US">8139EF31銆?span lang="EN-US">
寰蔣鎻愪緵浜?span lang="EN-US">GB18030鐨勫崌綰у寘錛屼絾榪欎釜鍗囩駭鍖呭彧鏄彁渚涗簡涓濂楁敮鎸?span lang="EN-US">CJK鎵╁睍A鐨?span lang="EN-US">6582涓眽瀛楃殑鏂板瓧浣擄細鏂板畫浣?span lang="EN-US">-18030錛屽茍涓嶆敼鍙樺唴鐮併?span lang="EN-US">Windows 鐨勫唴鐮佷粛鐒舵槸GBK銆?span lang="EN-US">
浠?span lang="EN-US">ASCII銆?span lang="EN-US">GB2312銆?span lang="EN-US">GBK鍒?span lang="EN-US">GB18030鐨勭紪鐮佹柟娉曟槸鍚戜笅鍏煎鐨勩傝?span lang="EN-US">Unicode鍙笌ASCII鍏煎
Unicode涔熸槸涓縐嶅瓧絎︾紪鐮佹柟娉曪紝涓嶈繃瀹冩槸鐢卞浗闄呯粍緇囪璁★紝鍙互瀹圭撼鍏ㄤ笘鐣屾墍鏈夎璦鏂囧瓧鐨勭紪鐮佹柟妗堛?span lang="EN-US">unicode 涓?span lang="EN-US">java 涓殑緙栫爜杞崲妗ユ,浣跨敤浜嗕互緇勬祦榪囨護鍣ㄦ潵妗ユ帴unicode緙栫爜鏂囨湰鍜屾湰鍦版搷浣滅郴緇熺紪鐮佹枃鏈殑闅旈槀(鍐呯爜,濡?span lang="EN-US">windows鐨?span lang="EN-US">GBK).鎵鏈夌殑class 媧劇敓鑷?span lang="EN-US">abstract class Reader and Writer .鍚庨潰緇х畫鐮旂┒.
鐢變簬鐜版湁鐨勫ぇ閲忕▼搴忓拰鏂囨。閮介噰鐢ㄤ簡鏌愮鐗瑰畾璇█鐨勭紪鐮侊紝渚嬪GBK錛?span lang="EN-US">Windows涓嶅彲鑳戒笉鏀寔鐜版湁鐨勭紪鐮侊紝鑰屽叏閮ㄦ敼鐢?span lang="EN-US">Unicode銆傛垜浠ОGBK涓?span lang="EN-US">windows鐨勫唴鐮?span lang="EN-US">.Windows浣跨敤浠g爜欏?span lang="EN-US">(code page)鏉ラ傚簲鍚勪釜鍥藉鍜屽湴鍖恒?span lang="EN-US">code page鍙互琚悊瑙d負鍐呯爜銆?span lang="EN-US">GBK瀵瑰簲鐨?span lang="EN-US">code page鏄?span lang="EN-US">CP936銆?
what is UCS?
Unicode鐨勫鍚嶆槸"Universal Multiple-Octet Coded Character Set"錛岀畝縐頒負UCS銆?span lang="EN-US">UCS鍙互鐪嬩綔鏄?span lang="EN-US">"Unicode Character Set"鐨勭緝鍐欍?span lang="EN-US">
UCS鏈変袱縐嶆牸寮忥細UCS-2鍜?span lang="EN-US">UCS-4銆傞【鍚嶆濅箟錛?span lang="EN-US">UCS-2灝辨槸鐢ㄤ袱涓瓧鑺傜紪鐮侊紝UCS-4灝辨槸鐢?span lang="EN-US">4涓瓧鑺傦紙瀹為檯涓婂彧鐢ㄤ簡31浣嶏紝鏈楂樹綅蹇呴』涓?span lang="EN-US">0錛夌紪鐮併?span lang="EN-US">
浠涔堟槸UTF
UTF錛屾槸Unicode Text Format鐨勭緝鍐欙紝鎰忎負Unicode鏂囨湰鏍煎紡銆傚浜?span lang="EN-US">UTF錛屾槸榪欐牱瀹氫箟鐨?span lang="EN-US">
錛?span lang="EN-US">1錛夊鏋?span lang="EN-US">Unicode鐨?span lang="EN-US">16浣嶅瓧絎︾殑澶?span lang="EN-US">9浣嶆槸0錛屽垯鐢ㄤ竴涓瓧鑺傝〃紺猴紝榪欎釜瀛楄妭鐨勯浣嶆槸 鈥?鈥?/span>錛屽墿涓嬬殑7浣嶄笌鍘熷瓧絎︿腑鐨勫悗7浣嶇浉鍚岋紝濡?span lang="EN-US">鈥淺u0034鈥?/span>錛?span lang="EN-US">0000 0000 0011 0100錛夛紝鐢?span lang="EN-US">鈥?4鈥?(0011 0100)琛ㄧず錛涳紙涓庢簮Unicode瀛楃鏄浉鍚岀殑錛夛紱
錛?span lang="EN-US">2錛夊鏋?span lang="EN-US">Unicode鐨?span lang="EN-US">16浣嶅瓧絎︾殑澶?span lang="EN-US">5浣嶆槸0錛屽垯鐢?span lang="EN-US">2涓瓧鑺傝〃紺猴紝棣栧瓧鑺傛槸鈥?10鈥?/span>寮澶達紝鍚庨潰鐨?span lang="EN-US">5浣嶄笌婧愬瓧絎︿腑闄ゅ幓澶?span lang="EN-US">5涓浂鍚庣殑鏈楂?span lang="EN-US">5浣嶇浉鍚岋紱絎簩涓瓧鑺備互鈥?0鈥?/span>寮澶達紝鍚庨潰鐨?span lang="EN-US">6浣嶄笌婧愬瓧絎︿腑鐨勪綆6浣嶇浉鍚屻傚鈥淺 u025d鈥?/span>錛?span lang="EN-US">0000 0010 0101 1101錛夛紝杞寲鍚庝負鈥渃99d鈥?/span>錛?span lang="EN-US">1100 1001 1001 1101錛夛紱
錛?span lang="EN-US">3錛夊鏋滀笉絎﹀悎涓婅堪涓や釜瑙勫垯錛屽垯鐢ㄤ笁涓瓧鑺傝〃紺恒傜涓涓瓧鑺備互鈥?110鈥?/span>寮澶達紝鍚庡洓浣嶄負婧愬瓧絎︾殑楂樺洓浣嶏紱絎簩涓瓧鑺備互鈥?0鈥?/span>寮澶達紝鍚庡叚浣嶄負婧愬瓧絎︿腑闂寸殑鍏綅錛涚涓変釜瀛楄妭浠?span lang="EN-US">鈥?0鈥?/span>寮澶達紝鍚庡叚浣嶄負婧愬瓧絎︾殑浣庡叚浣嶏紱濡?span lang="EN-US">鈥淺u9da
UCS 鍜?span lang="EN-US"> UTF 鐨勮仈緋?span lang="EN-US">
UTF-8灝辨槸浠?span lang="EN-US">8浣嶄負鍗曞厓瀵?span lang="EN-US">UCS榪涜緙栫爜
UTF-16浠?span lang="EN-US">16浣嶄負鍗曞厓瀵?span lang="EN-US">UCS榪涜緙栫爜
big endian鍜?span lang="EN-US">little endian
big endian鍜?span lang="EN-US">little endian鏄?span lang="EN-US">CPU澶勭悊澶氬瓧鑺傛暟鐨勪笉鍚屾柟寮忋備緥濡?span lang="EN-US">鈥?/span>姹?span lang="EN-US">鈥?/span>瀛楃殑Unicode緙栫爜鏄?st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="6" unitname="C">6C49銆傞偅涔堝啓鍒版枃浠墮噷鏃訛紝絀剁珶鏄皢
鈥渆ndian鈥?/span>榪欎釜璇嶅嚭鑷婃牸鍒椾經娓歌銆嬨傚皬浜哄浗鐨勫唴鎴樺氨婧愪簬鍚冮浮铔嬫椂鏄┒绔熶粠澶уご(Big-Endian)鏁插紑榪樻槸浠庡皬澶?span lang="EN-US">(Little-Endian)鏁插紑錛岀敱姝ゆ浘鍙戠敓榪囧叚嬈″彌涔憋紝涓涓殗甯濋佷簡鍛斤紝鍙︿竴涓涪浜嗙帇浣嶃?span lang="EN-US">
鎴戜滑涓鑸皢endian緲昏瘧鎴?span lang="EN-US">鈥?/span>瀛楄妭搴?span lang="EN-US">鈥?/span>錛屽皢big endian鍜?span lang="EN-US">little endian縐頒綔鈥?/span>澶у熬鈥?/span>鍜?span lang="EN-US">鈥?/span>灝忓熬鈥?/span>銆?span lang="EN-US">
=================================================
GB2312鏄?span lang="EN-US">GBK鐨勫瓙闆嗭紝GBK鏄?span lang="EN-US">GB18030鐨勫瓙闆?span lang="EN-US">
GBK鏄寘鎷腑鏃ラ煩瀛楃鐨勫ぇ瀛楃闆嗗悎
濡傛灉鏄腑鏂囩殑緗戠珯 鎺ㄨ崘GB2312 GBK鏈夋椂榪樻槸鏈夌偣闂
涓轟簡閬垮厤鎵鏈変貢鐮侀棶棰橈紝搴旇閲囩敤UTF-8錛屽皢鏉ヨ鏀寔鍥介檯鍖栦篃闈炲父鏂逛究
UTF-8鍙互鐪嬩綔鏄ぇ瀛楃闆嗭紝瀹冨寘鍚簡澶ч儴鍒嗘枃瀛楃殑緙栫爜銆?span lang="EN-US">
浣跨敤UTF-8鐨勪竴涓ソ澶勬槸鍏朵粬鍦板尯鐨勭敤鎴鳳紙濡傞娓彴婀撅級鏃犻渶瀹夎綆浣撲腑鏂囨敮鎸佸氨鑳芥甯歌鐪嬩綘鐨勬枃瀛楄屼笉浼氬嚭鐜頒貢鐮併?span lang="EN-US">
璇嶆潯錛?span lang="EN-US">UTF8
UTF8騫朵笉綆楁槸涓縐嶇數鑴戠紪鐮侊紝鑰屾槸涓縐嶅偍瀛樺拰浼犻佺殑鏍煎紡錛屽鍓嶆墍榪幫紝姣忎釜Unicode/UCS瀛楃閮戒互 2鎴?span lang="EN-US">4涓?span lang="EN-US">bytes鏉ュ偍瀛橈紝鐪嬬湅浠ヤ笅鐨勬瘮杈冿細
銆銆浠?span lang="EN-US">"I am Chinese"涓轟緥
銆銆銆鐢?span lang="EN-US">ANSI鍌ㄥ瓨錛?span lang="EN-US">12 Bytes
銆銆銆鐢?span lang="EN-US">Unicode/UCS2鍌ㄥ瓨錛?span lang="EN-US">24 Bytes + 2 Bytes(header)
銆銆銆鐢?span lang="EN-US">UCS4鍌ㄥ瓨錛?span lang="EN-US">48 Bytes + 4 Bytes(header)
銆銆浠?span lang="EN-US">"鎴戞槸涓浗浜?span lang="EN-US">"涓轟緥
銆銆銆鐢?span lang="EN-US">ANSI鍌ㄥ瓨錛?span lang="EN-US">10 Bytes
銆銆銆鐢?span lang="EN-US">Unicode/UCS2鍌ㄥ瓨錛?span lang="EN-US">10 Bytes + 2 Bytes(header)
銆銆銆鐢?span lang="EN-US">UCS4鍌ㄥ瓨錛?span lang="EN-US">20 Bytes + 4 Bytes(header)
銆銆鐢辨鍙鐩存帴浠?span lang="EN-US">Unicode/UCS鐨勫師濮嬪艦寮忔潵鍌ㄥ瓨鏄竴縐嶆瀬澶х殑嫻垂錛岃屼笖涔熶笉鍒╀簬浜掕仈緗戠殑浼犺緭(涓枃紼嶄負鍚堢畻涓鐐?span lang="EN-US">^_^)銆?span lang="EN-US">
銆銆鏈夎鍙婃錛?span lang="EN-US">Unicode/UCS鐨勫帇緙╁艦寮忥紞錛?span lang="EN-US">UTF8鍑虹幇浜嗭紝濂楃敤瀹樻柟緗戠珯鐨勯鍙ヨ瘽銆?span lang="EN-US">UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.銆忥紝鐢變簬UTF涔熼傜敤浜庣紪鐮?span lang="EN-US">UCS錛屾晠浜﹀彲縐頒負銆?span lang="EN-US">UCS transformation formats (UTF)銆?span lang="EN-US">
銆銆UTF8鏄互8bits鍗?span lang="EN-US">1Bytes涓虹紪鐮佺殑鏈鍩烘湰鍗曚綅錛屽綋鐒朵篃鍙互鏈夊熀浜?span lang="EN-US">16bits鍜?span lang="EN-US">32bits鐨勫艦寮忥紝鍒嗗埆縐頒負UTF16鍜?span lang="EN-US">UTF32錛屼絾鐩墠鐢ㄥ緱涓嶅錛岃?span lang="EN-US">UTF8鍒欒騫挎硾搴旂敤鍦ㄦ枃浠跺偍瀛樺拰緗戠粶浼犺緭涓?span lang="EN-US">
緙栫爜鍘熺悊
鍏堢湅榪欎釜妯℃澘錛?span lang="EN-US">
UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0000-0000
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
緙栫爜姝ラ錛?span lang="EN-US">
1) 棣栧厛紜畾闇瑕佸灝戜釜8bits(octets)
2) 鎸夌収涓婅堪妯℃澘濉厖姣忎釜octets鐨勯珮浣?span lang="EN-US">bits
3) 鎶婂瓧絎︾殑bits濉厖鑷?span lang="EN-US">x涓紝瀛楃欏哄簭錛氫綆浣?span lang="EN-US">鈫?/span>楂樹綅錛?span lang="EN-US">UTF8欏哄簭錛氭渶鍚庝竴涓?span lang="EN-US">octet鐨勬渶鏈綅x鈫?/span>絎竴涓?span lang="EN-US">octet鏈楂樹綅x
4) 瑙g爜鐨勫師鐞嗕竴鏍楓?span lang="EN-US">
瀹炰緥錛?span lang="EN-US">(鐣欐剰姣忎釜bit鐨勯鑹詫紝綺椾綋瀛椾負妯℃澘鍐呭)
UCS-4 UTF-8
HEX BIN Bytes BIN HEX Bytes
0000
0000 0099 10011001 4 11000010
0000 8D99 10001101 10011001 4 11101000 10110110 10011001 E8 B6 99 3
銆銆涓嶇煡澶у鐪嬫噦浜嗘病鏈夛紝鍏跺疄涓嶆噦涔熸棤鎵璋擄紝鍙嶆鍙堜笉鐢ㄨ嚜宸辯畻錛岀▼寮忓彲浠ュ畬鍏ㄤ唬鍔熾?span lang="EN-US">
銆銆浠?span lang="EN-US">UTF8鏍煎紡鍌ㄥ瓨鐨勬枃浠舵。棣栨爣璇嗕負EF BB BF銆?span lang="EN-US">
鏁堢巼
銆銆浠庝笂榪扮紪鐮佸師鐞嗕腑寰楀嚭鐨勭粨璁烘槸錛?span lang="EN-US">
銆銆銆1.姣忎釜鑻辨枃瀛楁瘝銆佹暟瀛楁墍鍗犵殑絀洪棿涓?span lang="EN-US">1 Byte錛?span lang="EN-US">
銆銆銆2.娉涙璇郴銆佹柉鎷夊か璇瓧姣嶅崰2 Bytes錛?span lang="EN-US">
銆銆銆3.姹夊瓧鍗?span lang="EN-US">3 Bytes銆?span lang="EN-US">
銆銆鐢辨鍙UTF8瀵硅嫳鏂囨潵璇存槸涓潪甯歌浜虹殑鏂規錛屼絾瀵逛腑鏂囨潵璇村垯涓嶅お鍚堢畻錛屾棤璁虹敤ANSI榪樻槸 Unicode/UCS2鏉ョ紪鐮侀兘鍙敤2 Bytes錛屼絾鐢?span lang="EN-US">UTF8鍒欓渶瑕?span lang="EN-US">3 Bytes銆?span lang="EN-US">
銆銆浠ヤ笅鏄竴浜涚粺璁¤祫鏂欙紝鏄劇ず鐢?span lang="EN-US">UTF8鏉ュ偍瀛樻枃浠舵瘡涓瓧絎︽墍闇鐨勫鉤鍧囧瓧鑺傦細
銆銆銆1.鎷変竵璇郴騫沖潎鐢?span lang="EN-US">1.1 Bytes錛?span lang="EN-US">
銆銆銆2.甯岃厞鏂囥佷縿鏂囥侀樋鎷変集鏂囧拰甯屼集鑾辨枃騫沖潎鐢?span lang="EN-US">1.7 Bytes錛?span lang="EN-US">
銆銆銆3.鍏朵粬澶ч儴浠芥枃瀛楀涓枃銆佹棩鏂囥侀煩鏂囥?span lang="EN-US">Hindi(鍖楀嵃搴﹁)鐢ㄧ害3 Bytes錛?span lang="EN-US">
銆銆銆4.鐢ㄨ秴榪?span lang="EN-US">4 Bytes鐨勯兘鏄簺闈炲父灝戠敤鐨勬枃瀛楃鍙楓?span lang="EN-US">
璇嶆潯錛?span lang="EN-US">GB2312
瀛楃蹇呴』緙栫爜鍚庢墠鑳借璁$畻鏈哄鐞嗐傝綆楁満浣跨敤鐨勭己鐪佺紪鐮佹柟寮忓氨鏄綆楁満鐨勫唴鐮併傛棭鏈熺殑璁$畻鏈轟嬌鐢?span lang="EN-US">7浣嶇殑ASCII緙栫爜錛屼負浜嗗鐞嗘眽瀛楋紝紼嬪簭鍛樿璁′簡鐢ㄤ簬綆浣撲腑鏂囩殑GB2312鍜岀敤浜庣箒浣撲腑鏂囩殑big5銆?
GB2312(1980騫?span lang="EN-US">)涓鍏辨敹褰曚簡7445涓瓧絎︼紝鍖呮嫭6763涓眽瀛楀拰682涓叾瀹冪鍙楓傛眽瀛楀尯鐨勫唴鐮佽寖鍥撮珮瀛楄妭浠?span lang="EN-US">B0-F7錛屼綆瀛楄妭浠?span lang="EN-US">A1-FE錛屽崰鐢ㄧ殑鐮佷綅鏄?span lang="EN-US">72*94=6768銆傚叾涓湁5涓┖浣嶆槸D7FA-D7FE銆?
GB2312鏀寔鐨勬眽瀛楀お灝戙?span lang="EN-US">1995騫寸殑姹夊瓧鎵╁睍瑙勮寖GBK1.0鏀跺綍浜?span lang="EN-US">21886涓鍙鳳紝瀹冨垎涓烘眽瀛楀尯鍜屽浘褰㈢鍙峰尯銆傛眽瀛楀尯鍖呮嫭21003涓瓧絎︺?span lang="EN-US">2000騫寸殑GB18030鏄彇浠?span lang="EN-US">GBK1.0鐨勬寮忓浗瀹舵爣鍑嗐傝鏍囧噯鏀跺綍浜?span lang="EN-US">27484涓眽瀛楋紝鍚屾椂榪樻敹褰曚簡钘忔枃銆佽挋鏂囥佺淮鍚懼皵鏂囩瓑涓昏鐨勫皯鏁版皯鏃忔枃瀛椼傜幇鍦ㄧ殑PC騫沖彴蹇呴』鏀寔GB18030錛屽宓屽叆寮忎駭鍝佹殏涓嶄綔瑕佹眰銆傛墍浠ユ墜鏈恒?span lang="EN-US">MP3涓鑸彧鏀寔GB2312銆?
浠?span lang="EN-US">ASCII銆?span lang="EN-US">GB2312銆?span lang="EN-US">GBK鍒?span lang="EN-US">GB18030錛岃繖浜涚紪鐮佹柟娉曟槸鍚戜笅鍏煎鐨勶紝鍗沖悓涓涓瓧絎﹀湪榪欎簺鏂規涓繪槸鏈夌浉鍚岀殑緙栫爜錛屽悗闈㈢殑鏍囧噯鏀寔鏇村鐨勫瓧絎︺傚湪榪欎簺緙栫爜涓紝鑻辨枃鍜屼腑鏂囧彲浠ョ粺涓鍦板鐞嗐傚尯鍒嗕腑鏂囩紪鐮佺殑鏂規硶鏄珮瀛楄妭鐨勬渶楂樹綅涓嶄負0銆傛寜鐓х▼搴忓憳鐨勭О鍛鹼紝GB2312銆?span lang="EN-US">GBK鍒?span lang="EN-US">GB18030閮藉睘浜庡弻瀛楄妭瀛楃闆?span lang="EN-US"> (DBCS)銆?
鏈夌殑涓枃Windows鐨勭己鐪佸唴鐮佽繕鏄?span lang="EN-US">GBK錛屽彲浠ラ氳繃GB18030鍗囩駭鍖呭崌綰у埌GB18030銆備笉榪?span lang="EN-US">GB18030鐩稿GBK澧炲姞鐨勫瓧絎︼紝鏅氫漢鏄緢闅劇敤鍒扮殑錛岄氬父鎴戜滑榪樻槸鐢?span lang="EN-US">GBK鎸囦唬涓枃Windows鍐呯爜銆?
榪欓噷榪樻湁涓浜涚粏鑺傦細
GB2312鐨勫師鏂囪繕鏄尯浣嶇爜錛屼粠鍖轟綅鐮佸埌鍐呯爜錛岄渶瑕佸湪楂樺瓧鑺傚拰浣庡瓧鑺備笂鍒嗗埆鍔犱笂A0銆?
鍦?span lang="EN-US">DBCS涓紝GB鍐呯爜鐨勫瓨鍌ㄦ牸寮忓緇堟槸big endian錛屽嵆楂樹綅鍦ㄥ墠銆?
GB2312鐨勪袱涓瓧鑺傜殑鏈楂樹綅閮芥槸1銆備絾絎﹀悎榪欎釜鏉′歡鐨勭爜浣嶅彧鏈?span lang="EN-US">128*128=16384涓傛墍浠?span lang="EN-US">GBK鍜?span lang="EN-US">GB18030鐨勪綆瀛楄妭鏈楂樹綅閮藉彲鑳戒笉鏄?span lang="EN-US">1銆備笉榪囪繖涓嶅獎鍝?span lang="EN-US">DBCS瀛楃嫻佺殑瑙f瀽錛氬湪璇誨彇DBCS瀛楃嫻佹椂錛屽彧瑕侀亣鍒伴珮浣嶄負1鐨勫瓧鑺傦紝灝卞彲浠ュ皢涓嬩袱涓瓧鑺備綔涓轟竴涓弻瀛楄妭緙栫爜錛岃屼笉鐢ㄧ浣庡瓧鑺傜殑楂樹綅鏄粈涔堛?
char * str="姹夊瓧";BYTE *pstr=(BYTE*)str;BYTE B=pstr[i];B 灝辨槸鏁存暟
涓 寮曞叆闂
浠g爜 wchar_t a[3]=L鈥?/span>涓浗鈥?/span>錛岀紪璇戞椂鍑洪敊錛屽嚭閿欎俊鎭負錛氭暟緇勮秺鐣屻備絾wchar_t 鏄竴涓瀛楄妭綾誨瀷錛屾暟緇?span lang="EN-US">a鐨勫ぇ灝忓簲涓?span lang="EN-US">6涓瓧鑺傦紝鑰屼袱涓眽瀛楃殑鐨?span lang="EN-US">unicode鐮佸崰4涓瓧鑺傦紝鍐嶅姞涓婁竴涓粨鏉熺錛屾渶澶?span lang="EN-US">6涓瓧鑺傦紝鎵浠ュ簲璇ヤ笉浼氳秺鐣屻?span lang="EN-US">
闅鵑亾鏄紪璇戝櫒鍑洪棶棰樹簡錛?span lang="EN-US">
浜?瑙e喅寮曞叆闂鎵闇鐨勭煡璇?/span>
涓昏闇涓ゆ柟闈㈢殑鐭ヨ瘑錛岀涓涓負瀛楃灝ゅ叾鏄眽瀛楃殑緙栫爜錛屼互鍙婅璦鍜屽伐鍏風殑鏀寔鎯呭喌錛岀浜屼釜鏄?span lang="EN-US">vc/c++涓?span lang="EN-US">MutiByte Charater Set 鍜?span lang="EN-US"> Wide Character Set鏈夊叧鍐呭瓨鍒嗛厤鐨勬儏鍐點?span lang="EN-US">
涓?姹夊瓧鐨勭紪鐮佹柟寮忓強鍦?span lang="EN-US">vc/c++涓殑澶勭悊
1.姹夊瓧緙栫爜鏂瑰紡鐨勪粙緇?/span>
瀵硅嫳鏂囧瓧絎︾殑澶勭悊錛?span lang="EN-US">7浣?span lang="EN-US">ASCII鐮佸瓧絎﹂泦涓殑瀛楃鍗沖彲婊¤凍浣跨敤闇姹傦紝涓旇嫳鏂囧瓧絎﹀湪璁$畻鏈轟笂鐨勮緭鍏ュ強杈撳嚭涔熼潪甯哥畝鍗曪紝鍥犳錛岃嫳鏂囧瓧絎︾殑杈撳叆銆佸瓨鍌ㄣ佸唴閮ㄥ鐞嗗拰杈撳嚭閮藉彲浠ュ彧鐢ㄥ悓涓涓紪鐮侊紙濡?span lang="EN-US">ASCII鐮侊級銆?span lang="EN-US">
鑰屾眽瀛楁槸涓縐嶈薄褰㈡枃瀛楋紝瀛楁暟鏋佸錛堢幇浠f眽瀛椾腑浠呭父鐢ㄥ瓧灝辨湁鍏佷竷鍗冧釜錛屾誨瓧鏁伴珮杈?span lang="EN-US">5涓囦釜浠ヤ笂錛夛紝涓斿瓧褰㈠鏉傦紝姣忎竴涓眽瀛楅兘鏈?span lang="EN-US">"闊熾佸艦銆佷箟"涓夎绱狅紝鍚岄煶瀛椼佸紓浣撳瓧涔熷緢澶氾紝榪欎簺閮界粰姹夊瓧鐨勭殑璁$畻鏈哄鐞嗗甫鏉ヤ簡寰堝ぇ鐨勫洶闅俱傝鍦ㄨ綆楁満涓鐞嗘眽瀛楋紝蹇呴』瑙e喅浠ヤ笅鍑犱釜闂錛氶鍏堟槸姹夊瓧鐨勮緭鍏ワ紝鍗沖浣曟妸緇撴瀯澶嶆潅鐨勬柟鍧楁眽瀛楄緭鍏ュ埌璁$畻鏈轟腑鍘伙紝榪欐槸姹夊瓧澶勭悊鐨勫叧閿紱鍏舵錛屾眽瀛楀湪璁$畻鏈哄唴濡備綍琛ㄧず鍜屽瓨鍌紵濡備綍涓庤タ鏂囧吋瀹癸紵鏈鍚庯紝濡備綍灝嗘眽瀛楃殑澶勭悊緇撴灉浠庤綆楁満鍐呰緭鍑猴紵
涓烘錛屽繀欏誨皢姹夊瓧浠g爜鍖栵紝鍗沖姹夊瓧榪涜緙栫爜銆傚搴斾簬涓婅堪姹夊瓧澶勭悊榪囩▼涓殑杈撳叆銆佸唴閮ㄥ鐞嗗強杈撳嚭榪欎笁涓富瑕佺幆鑺傦紝姣忎竴涓眽瀛楃殑緙栫爜閮藉寘鎷緭鍏ョ爜銆佷氦鎹㈢爜銆佸唴閮ㄧ爜鍜屽瓧褰㈢爜銆傚湪璁$畻鏈虹殑姹夊瓧淇℃伅澶勭悊緋葷粺涓紝澶勭悊姹夊瓧鏃惰榪涜濡備笅鐨勪唬鐮佽漿鎹細杈撳叆鐮佲啋浜ゆ崲鐮佲啋鍐呴儴鐮佲啋瀛楀艦鐮併?span lang="EN-US">
(1)杈撳叆鐮侊細 浣滅敤鏄紝鍒╃敤瀹冨拰鐜版湁鐨勬爣鍑嗚タ鏂囬敭鐩樼粨鍚堟潵杈撳叆姹夊瓧銆傝緭鍏ョ爜涔熺О涓哄鐮併備富瑕佸綊涓哄洓綾伙細
a) 鏁板瓧緙栫爜錛氭暟瀛楃紪鐮佹槸鐢ㄧ瓑闀跨殑鏁板瓧涓蹭負姹夊瓧閫愪竴緙栧彿錛屼互榪欎釜緙栧彿浣滀負姹夊瓧鐨勮緭鍏ョ爜銆備緥濡傦紝鍖轟綅鐮併佺數鎶ョ爜絳夐兘灞炰簬鏁板瓧緙栫爜銆?span lang="EN-US">
b) 鎷奸煶鐮侊細鎷奸煶鐮佹槸浠ユ眽瀛楃殑璇婚煶涓哄熀紜鐨勮緭鍏ュ姙娉曘?span lang="EN-US">
c) 瀛楀艦鐮侊細瀛楀艦鐮佹槸浠ユ眽瀛楃殑瀛楀艦緇撴瀯涓哄熀紜鐨勮緭鍏ョ紪鐮併備緥濡傦紝浜旂瑪瀛楀瀷鐮侊紙鐜嬬爜錛夈?span lang="EN-US">
d) 闊沖艦鐮侊細闊沖艦鐮佹槸鍏奸【姹夊瓧鐨勮闊沖拰瀛楀艦鐨勮緭鍏ョ紪鐮併?span lang="EN-US">
(2)浜ゆ崲鐮侊細鐢ㄤ簬姹夊瓧澶栫爜鍜屽唴閮ㄧ爜鐨勪氦鎹€備氦鎹㈢爜鐨勫浗瀹舵爣鍑嗕唬鍙蜂負GB2312-80銆?span lang="EN-US">
(3)鍐呴儴鐮侊細鍐呴儴鐮佹槸姹夊瓧鍦ㄨ綆楁満鍐呯殑鍩烘湰琛ㄧず褰㈠紡錛屾槸璁$畻鏈哄姹夊瓧榪涜璇嗗埆銆佸瓨鍌ㄣ佸鐞嗗拰浼犺緭鎵鐢ㄧ殑緙栫爜銆傚唴閮ㄧ爜涔熸槸鍙屽瓧鑺傜紪鐮侊紝灝嗗浗鏍囩爜涓や釜瀛楄妭鐨勬渶楂樹綅閮界疆涓?span lang="EN-US">"1"錛屽嵆杞崲鎴愭眽瀛楃殑鍐呴儴鐮併?span lang="EN-US">
(4)瀛楀艦鐮侊細瀛楀艦鐮佹槸琛ㄧず姹夊瓧瀛楀艦淇℃伅錛堟眽瀛楃殑緇撴瀯銆佸艦鐘躲佺瑪鍒掔瓑錛夌殑緙栫爜錛岀敤鏉ュ疄鐜拌綆楁満瀵規眽瀛楃殑杈撳嚭錛堟樉紺恒佹墦鍗幫級銆?span lang="EN-US">
2.VC涓眽瀛楃殑緙栫爜鏂瑰紡
vc/c++姝f槸閲囩敤浜?span lang="EN-US">GB2312鍐呴儴鐮佷綔涓烘眽瀛楃殑緙栫爜鏂瑰紡,鍥犳vc/c++涓殑鍚勭杈撳叆杈撳嚭鏂規硶錛屽cin/wcin,cout/wcout,scanf/wsanf,printf/wprintf...閮芥槸鍩轟簬GB2312鐨勶紝濡傛灉姹夊瓧鐨勫唴鐮佷笉鏄繖縐嶇紪鐮佹柟寮忥紝閭d箞鍒╃敤涓婅堪鍚勭鏂規硶灝變笉浼氭紜殑瑙f瀽姹夊瓧銆?span lang="EN-US">
浠旂粏瑙傚療ASCII瀛楃琛紝浠庣161涓瓧絎﹀紑濮嬶紝鍚庨潰鐨勫瓧絎﹀茍涓嶇粡甯鎬負鐢ㄦ埛鎵浣跨敤錛岃礋鍊間篃鏈嬌鐢ㄣ?span lang="EN-US">GB2312緙栫爜鏂瑰紡鍏呭垎鍒╃敤榪欎竴鐗規э紝灝?span lang="EN-US">161-255錛?span lang="EN-US">-95~-1錛変箣闂寸殑鏁板肩┖闂翠綔涓烘眽瀛楃殑鏍囪瘑鐮併傛棦鐒?span lang="EN-US">255-161 = 94涓嶈兘婊¤凍姹夊瓧瀹歸噺鐨勮姹傦紝灝卞皢姣忎袱涓瓧絎﹀茍鍦ㄤ竴鍧?span lang="EN-US">(鍗充竴涓眽瀛楀崰涓や釜瀛楄妭)錛屾樉鐒訛紝94* 94 =8836鍩烘湰涓婂凡緇忔弧瓚充簡甯哥敤姹夊瓧涓暟鐨勮姹傘傝綆楁満澶勭悊瀛楃鏃訛紝褰撹繛緇鐞嗗埌涓や釜澶т笌160(鎴?span lang="EN-US">-95~-1)鐨勫瓧鑺傛椂錛屽氨璁や負榪欎袱涓瓧鑺傚瓨鏀句簡涓涓眽瀛楀瓧絎︺傚彲浠ョ敤涓嬮潰鐨?span lang="EN-US">Demo紼嬪簭鏉ユā鎷?span lang="EN-US">vc/c++涓緭鍑烘眽瀛楀瓧絎︾殑榪囩▼銆?span lang="EN-US">
unsigned char input[50];
cin>>input;
int flag=0;
for(int i =0 ;i < 50 ;i++)
{
if(input[i] > 0xa0 && input[i] != 0)
{
if(flag == 1)
{
cout<<"chinese character"<<endl;
flag = 0;
}
else
{
flag++;
}
}
else if(input[i] == 0)
{
break;
}
else
{
cout<<"english character"<<endl;
}
}
杈撳叆錛?span lang="EN-US">Hello涓浗 錛?span lang="EN-US">鈥?/span>涓浗鈥?/span>瀵瑰簲鐨?span lang="EN-US">GB2312鍐呯爜涓猴細214 208錛?span lang="EN-US">185 250錛?span lang="EN-US">
杈撳嚭錛?span lang="EN-US">english character
english character
english character
english character
english character
chinese character
chinese character
vc/c++涓殑鑻辨枃瀛楃浠嶇劧閲囩敤ASCII緙栫爜鏂瑰紡銆傚彲浠ヨ鎯籌紝鍏朵粬鍥藉紼嬪簭鍛樺埄鐢?span lang="EN-US">vc/c++緙栧啓紼嬪簭杈撳叆鏈浗瀛楃鏃訛紝vc/c++鍒欎細閲囩敤璇ュ浗鐨勫瓧絎︾紪鐮佹柟寮忔潵澶勭悊榪欎簺瀛楃銆?span lang="EN-US">
闂鍙堜駭鐢熶簡錛岄煩鍥界殑vc/c++紼嬪簭鍦ㄤ腑鍥界殑vc/c++涓婅繍琛屾椂錛屽鏋滄病鏈夌浉搴旂殑鍐呯爜搴擄紝鍒欏闊╄瀛楃鐨勬樉紺烘湁鍙兘鍑虹幇涔辯爜銆傛垜涓漢鐚滄祴錛?span lang="EN-US">vc瀹夎紼嬪簭涓簲璇ュ甫鏈変笉鍚屽浗瀹剁殑鍐呯爜搴擄紝榪欐牱涓鏉ヨ偗瀹氫細鍗犵敤寰堝ぇ鐨勭┖闂淬傚鏋滄墍鏈夌殑鍥藉浣跨敤緇熶竴鐨勭紪鐮佹柟寮忥紝涓旀墍鏈夌殑紼嬪簭璁捐璇█鍜屽紑鍙戝伐鍏烽兘鏀寔榪欑緙栫爜鏂瑰紡璇ュ濂斤紒鑰岀幇瀹炰腑錛岀‘瀹炲凡緇忔湁榪欑緙栫爜鏂瑰紡浜嗭紝涓旇澶氭柊鐨勮璦涔熼兘鏀寔榪欑緙栫爜鏂瑰紡錛屽Java銆?span lang="EN-US">C#絳夛紝瀹冨氨鏄笅闈㈢殑Unicode緙栫爜
3.鏂扮殑鍐呯爜鏍囧噯---Unicode
Unicode錛堢粺
Unicode 緙栫爜緋葷粺鍙垎涓虹紪鐮佹柟寮忓拰瀹炵幇鏂瑰紡涓や釜灞傛銆?span lang="EN-US">
緙栫爜鏂瑰紡錛?span lang="EN-US">Unicode 鐨勭紪鐮佹柟寮忎笌 ISO 10646 鐨勯氱敤瀛楃闆嗭紙Universal Character Set錛?span lang="EN-US">UCS錛夋蹇電浉瀵瑰簲錛岀洰鍓嶇殑鐢ㄤ簬瀹炵敤鐨?span lang="EN-US"> Unicode 鐗堟湰瀵瑰簲浜?span lang="EN-US"> UCS-2錛屼嬌鐢?span lang="EN-US">16浣嶇殑緙栫爜絀洪棿銆備篃灝辨槸姣忎釜瀛楃鍗犵敤2涓瓧鑺傘傝繖鏍風悊璁轟笂涓鍏辨渶澶氬彲浠ヨ〃紺?span lang="EN-US"> 216 涓瓧絎︺傚熀鏈弧瓚沖悇縐嶈璦鐨勪嬌鐢ㄣ傚疄闄呬笂鐩墠鐗堟湰鐨?span lang="EN-US"> Unicode 灝氭湭濉厖婊¤繖16浣嶇紪鐮侊紝淇濈暀浜嗗ぇ閲忕┖闂翠綔涓虹壒孌婁嬌鐢ㄦ垨灝嗘潵鎵╁睍銆?span lang="EN-US">
瀹炵幇鏂瑰紡錛?span lang="EN-US">Unicode 鐨勫疄鐜版柟寮忎笉鍚屼簬緙栫爜鏂瑰紡銆備竴涓瓧絎︾殑 Unicode 緙栫爜鏄‘瀹氱殑銆備絾鏄湪瀹為檯浼犺緭榪囩▼涓紝鐢變簬涓嶅悓緋葷粺騫沖彴鐨勮璁′笉涓瀹氫竴鑷達紝浠ュ強鍑轟簬鑺傜渷絀洪棿鐨勭洰鐨勶紝瀵?span lang="EN-US"> Unicode 緙栫爜鐨勫疄鐜版柟寮忔湁鎵涓嶅悓銆?span lang="EN-US">Unicode 鐨勫疄鐜版柟寮忕О涓?span lang="EN-US">Unicode杞崲鏍煎紡錛?span lang="EN-US">Unicode Translation Format錛岀畝縐頒負 UTF錛夈傚錛?span lang="EN-US">UTF-8 緙栫爜錛岃繖鏄竴縐嶅彉闀跨紪鐮侊紝瀹冨皢鍩烘湰7浣?span lang="EN-US">ASCII瀛楃浠嶇敤7浣嶇紪鐮佽〃紺猴紝鍗犵敤涓涓瓧鑺傦紙棣栦綅琛?span lang="EN-US">0錛夈傝岄亣鍒頒笌鍏朵粬 Unicode 瀛楃娣峰悎鐨勬儏鍐碉紝灝嗘寜涓瀹氱畻娉曡漿鎹紝姣忎釜瀛楃浣跨敤1-3涓瓧鑺傜紪鐮侊紝騫跺埄鐢ㄩ浣嶄負0鎴?span lang="EN-US">1榪涜璇嗗埆銆?span lang="EN-US">
Java涓?span lang="EN-US">C#璇█閮芥槸閲囩敤Unicode緙栫爜鏂瑰紡錛屽湪榪欎袱縐嶈璦涓畾涔変竴涓瓧絎︼紝鍦ㄥ唴瀛樹腑瀛樻斁鐨勫氨鏄繖涓瓧絎︾殑涓ゅ瓧鑺?span lang="EN-US">Unicode鐮併傚涓嬫墍紺猴細
char a='鎴?span lang="EN-US">'; => 鍐呭瓨涓瓨鏀劇殑Unicode鐮佷負錛?span lang="EN-US">25105
鎴戜滑鐪嬬湅浠栫殑瀹氫箟錛?span lang="EN-US">
#ifdef UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
ok錛屼竴鍒囬棶棰橀兘瑙e喅浜嗭紝鎴戜滑鍙渶瑕佸畾涔?span lang="EN-US">UNICODE灝變竴鏍蜂嬌鐢?span lang="EN-US">wchar_t,鏄緢鏂逛究銆傚彟澶栵紝鍦?span lang="EN-US">windows鐨?span lang="EN-US">COM涓嬌鐢ㄧ殑涓寰嬫槸unicode錛屼絾鏄?span lang="EN-US">MFC榛樿鐨勭‘瀹?span lang="EN-US">MBCS錛屾墍浠ヤ綘鐢?span lang="EN-US">MFC鍐欑殑綾誨簱濡傛灉鏀懼埌浜?span lang="EN-US">COM涓嬶紝鏈変簺瀛楃鐨勬牸寮忓寲鏂瑰紡鎴栬呰繑鍥炲奸敊璇殑錛屽師鍥犲氨鏄?span lang="EN-US">com涓寰嬩嬌鐢?span lang="EN-US">unicode錛岃?span lang="EN-US">unicode浣跨敤wchar_t('00')緇撳熬錛?span lang="EN-US">char鍗存槸浣跨敤'0'緇撳熬鐨勩備竴鑸儏鍐典笅錛屾櫘閫氬瓧絎﹂渶瑕佸姞杞?span lang="EN-US">_T瀹忔墠鑳芥甯歌繍琛岋紝姣斿MFC涓綘鍐欓亾S = "FSDFSDF",閭d箞璇ョ被杞埌COM涓嬶紝闇瑕佸啓S = _T("FSDFSDF")錛涙墠鍙互銆傛垜浠彲浠ユ兂璞″畯_T璺?span lang="EN-US">TCHAr鐨勫姛鑳戒竴鏍鳳紝濡傛灉浣跨敤UNICODE灝辮嚜鍔ㄥ湪constant string鍓嶉潰鍔犱笂L錛屽惁鍒欏氨鐩存帴浣跨敤銆?span lang="EN-US">
鎴戜滑璇翠竴浜涘皬闂錛?span lang="EN-US">
VC6鐢熸垚鐨?span lang="EN-US">console application鏄?span lang="EN-US">
int main(int argc, char* argv[])
VS C++ 2005鐢熸垚鐨勬槸
int _tmain(int argc, _TCHAR* argv[])
鏄劇劧錛岀敤_tmain鏇村ソ錛?span lang="EN-US">why?
You can also use _tmain, which is defined in TCHAR.h. _tmain will resolve to main unless _UNICODE is defined, in which case _tmain will resolve to wmain.(http://msdn2.microsoft.com/en-us/library/6wd819wh.aspx#).
鎴戜滑涔熶細甯稿父鐪嬪埌濡備笅涓浜涘瓧絎︾被鍨嬶紝
WCHAR wchar_t wchar_t
LPSTR zero-terminated string of char (char*) zero-terminated string of char (char*)
LPCSTR constant zero-terminated string of char (const char*) constant zero-terminated string of char (const char*)
LPWSTR zero-terminated Unicode string (wchar_t*) zero-terminated Unicode string (wchar_t*)
LPCWSTR constant zero-terminated Unicode string (const wchar_t*) constant zero-terminated Unicode string (const wchar_t*)
TCHAR char wchar_t
LPTSTR zero-terminated string of TCHAR (TCHAR*) zero-terminated string of TCHAR (TCHAR*)
LPCTSTR constant zero-terminated string of TCHAR (const TCHAR*) constant zero-terminated string of TCHAR (const TCHAR*)
C 涓鑸唬琛?span lang="EN-US">constant錛?span lang="EN-US">P浠h〃鎸囬拡錛?span lang="EN-US">LP浠h〃闀挎寚閽?span lang="EN-US">,W浠h〃瀹藉瓧絎︼紝涔熷氨鏄?span lang="EN-US">UNICODE錛岃繖涓嬫槸涓嶆槸閮借兘鏄庣櫧榪欎簺鏄共浠涔堢殑浜嗭紵
鎴戜滑涔熶細甯稿父鐪嬪埌_mbsstr()榪欐牱鐨勫嚱鏁幫紝榪欏氨鏄?span lang="EN-US">MBCS瀛楃緙栫爜鐨勫嚱鏁幫紝褰撶劧鍙互澶勭悊SBCS緙栫爜錛屼絾鏄弽涔嬪嵈涓嶈銆傛墍浠ヤ負浜嗕繚闄╄搗瑙侊紝鎴戜滑鍙互浣跨敤_mbsstr浠f浛strstr,浣嗘槸濡傛灉紼嬪簭鍙槸澶勭悊SBCS錛岄偅涔堟樉鐒跺張褰卞搷鏁堢巼錛屾墍浠ュ埌搴曠敤浠涔堟柟寮忓悓鏃舵弧瓚蟲晥鐜囧拰鍙Щ妞嶆э紝鑷繁鎺傞噺鐫鍔炲惂銆?span lang="EN-US">
浠ュ悗浣跨敤C++緙栧啓紼嬪簭錛屽鏋滃嚭鐜頒貢鐮侊紝棣栧厛媯鏌?span lang="EN-US">C++鐨勭紪鐮佺被鍨嬶紝鑰屼笖涓鑸儏鍐典笅閮芥槸緇撴潫絎﹀彿娌℃湁寮勫錛?span lang="EN-US">SBCS鍜?span lang="EN-US">MBCS閮芥槸浠ュ崟瀛楄妭0緇撳熬錛?span lang="EN-US">UNICODE鏄互鍙屽瓧鑺?span lang="EN-US">00緇撳熬鐨勩?span lang="EN-US">
UTF-16鏄?/span>Unicode鐨勫叾涓竴涓嬌鐢ㄦ柟寮忋?/span> UTF鏄?/span> Unicode/UCS Transformation Format錛屽嵆鎶?/span>Unicode杞仛鏌愮鏍煎紡鐨勬剰鎬濄?/span>
瀹冨畾涔変簬ISO/IEC 10646-1鐨勯檮褰?/span>Q錛岃?/span>RFC2781涔熷畾涔変簡鐩鎬技鐨勫仛娉曘?/span>
鍦?/span>Unicode鍩烘湰澶氭枃縐嶅鉤闈?/span>瀹氫箟鐨勫瓧絎︼紙鏃犺鏄媺涓佸瓧姣嶃佹眽瀛楁垨鍏跺畠鏂囧瓧鎴栫鍙鳳級錛屼竴寰嬩嬌鐢?/span>2瀛楄妭鍌ㄥ瓨銆傝屽湪杈呭姪騫抽潰瀹氫箟鐨勫瓧絎︼紝浼氫互浠g悊瀵?/i>錛?/span>surrogate pair錛夌殑褰㈠紡錛屼互涓や釜2瀛楄妭鐨勫兼潵鍌ㄥ瓨銆?/span>
UTF-16姣旇搗UTF-8錛屽ソ澶勫湪浜庡ぇ閮ㄥ垎瀛楃閮戒互鍥哄畾闀垮害鐨勫瓧鑺?/span> (2瀛楄妭) 鍌ㄥ瓨錛屼絾UTF-16鍗存棤娉曞吋瀹逛簬ASCII緙栫爜銆?/span>
UTF-16鐨勫ぇ灝懼簭鍜屽皬灝懼簭鍌ㄥ瓨褰㈠紡閮藉湪鐢ㄣ備竴鑸潵璇達紝浠?/span>Macintosh鍒朵綔鎴栧偍瀛樼殑鏂囧瓧浣跨敤澶у熬搴忔牸寮忥紝浠?/span>Microsoft鎴?/span>Linux鍒朵綔鎴栧偍瀛樼殑鏂囧瓧浣跨敤灝忓熬搴忔牸寮忋?/span>
涓轟簡寮勬竻妤?/span>UTF-16鏂囦歡鐨勫ぇ灝忓熬搴忥紝鍦?/span>UTF-16鏂囦歡鐨勫紑棣栵紝閮戒細鏀劇疆涓涓?/span>U+FEFF瀛楃浣滀負Byte Order Mark (UTF-16LE 浠?/span> FF FE 浠h〃錛?/span>UTF-16BE 浠?/span> FE FF 浠h〃)錛屼互鏄劇ず榪欎釜鏂囨湰鏂囦歡鏄互UTF-16緙栫爜錛屽叾涓?/span>U+FEFF瀛楃鍦?/span>UNICODE涓唬琛ㄧ殑鎰忎箟鏄?/span>ZERO WIDTH NO-BREAK SPACE錛岄【鍚嶆濅箟錛屽畠鏄釜娌℃湁瀹藉害涔熸病鏈夋柇瀛楃殑絀虹櫧銆?/span>
浠ヤ笅鐨勪緥瀛愭湁涓変釜瀛楃錛氥屾湵銆?/span>(U+6731)銆佸崐瑙掗楀彿 (U+
| 浣跨敤 UTF-16 緙栫爜鐨勪緥瀛?/span> | ||||||
| 緙栫爜鍚嶇О | 緙栫爜嬈″簭 | 緙栫爜 | ||||
| BOM | "鏈?/span>" | "," | "鑱?/span>" | | ||
| UTF-16LE | 灝忓熬搴?/span> | | 31 67 | | | |
| UTF-16BE | 澶у熬搴?/span> | | 67 31 | 00 | 80 | |
| UTF-16 | 灝忓熬搴忥紝鍖呭惈BOM | FF FE | 31 67 | | | |
| UTF-16 | 澶у熬搴忥紝鍖呭惈BOM | FE FF | 67 31 | 00 | 80 | |
UTF-16鍙湅鎴愭槸UCS-2鐨?/span>鐖墮泦銆傚湪娌℃湁杈呭姪騫抽潰瀛楃鍓嶏紝UTF-16涓?/span>UCS-2鎵鎸囩殑鏄悓涓鐨勬剰鎬濄備絾褰撳紩鍏ヨ緟鍔╁鉤闈㈠瓧絎﹀悗錛屽氨鍙О涓?/span>UTF-16浜嗐傜幇鍦ㄨ嫢鏈夎蔣浠跺0縐拌嚜宸辨敮鎸?/span>UCS-2緙栫爜錛岄偅鍏跺疄鏄殫鎸囧畠涓嶈兘鏀寔杈呭姪騫抽潰瀛楃鐨勫濠夎銆?/span>
榪欐槸涓綃囩▼搴忓憳鍐欑粰紼嬪簭鍛樼殑瓚e懗璇葷墿銆傛墍璋撹叮鍛蟲槸鎸囧彲浠ユ瘮杈冭交鏉懼湴浜嗚В涓浜涘師鏉ヤ笉娓呮鐨勬蹇碉紝澧炶繘鐭ヨ瘑錛岀被浼間簬鎵?span lang=EN-US>RPG娓告垙鐨勫崌綰с傛暣鐞嗚繖綃囨枃绔犵殑鍔ㄦ満鏄袱涓棶棰橈細
闂涓錛?
浣跨敤Windows璁頒簨鏈殑“鍙﹀瓨涓?span lang=EN-US>”錛屽彲浠ュ湪GBK銆?span lang=EN-US>Unicode銆?span lang=EN-US>Unicode big endian鍜?span lang=EN-US>UTF-8榪欏嚑縐嶇紪鐮佹柟寮忛棿鐩鎬簰杞崲銆傚悓鏍鋒槸txt鏂囦歡錛?span lang=EN-US>Windows鏄庢牱璇嗗埆緙栫爜鏂瑰紡鐨勫憿錛?span lang=EN-US>
鎴戝緢鏃╁墠灝卞彂鐜?span lang=EN-US>Unicode銆?span lang=EN-US>Unicode big endian鍜?span lang=EN-US>UTF-8緙栫爜鐨?span lang=EN-US>txt鏂囦歡鐨勫紑澶翠細澶氬嚭鍑犱釜瀛楄妭錛屽垎鍒槸FF銆?span lang=EN-US>FE錛?span lang=EN-US>Unicode錛?span lang=EN-US>,FE銆?span lang=EN-US>FF錛?span lang=EN-US>Unicode big endian錛?span lang=EN-US>,EF銆?span lang=EN-US>BB銆?span lang=EN-US>BF錛?span lang=EN-US>UTF-8錛夈備絾榪欎簺鏍囪鏄熀浜庝粈涔堟爣鍑嗗憿錛?span lang=EN-US>
闂浜岋細
鏈榪戝湪緗戜笂鐪嬪埌涓涓?span lang=EN-US>ConvertUTF.c錛屽疄鐜頒簡UTF-32銆?span lang=EN-US>UTF-16鍜?span lang=EN-US>UTF-8榪欎笁縐嶇紪鐮佹柟寮忕殑鐩鎬簰杞崲銆傚浜?span lang=EN-US>Unicode(UCS2)銆?span lang=EN-US>GBK銆?span lang=EN-US>UTF-8榪欎簺緙栫爜鏂瑰紡錛屾垜鍘熸潵灝變簡瑙c備絾榪欎釜紼嬪簭璁╂垜鏈変簺緋婃秱錛屾兂涓嶈搗鏉?span lang=EN-US>UTF-16鍜?span lang=EN-US>UCS2鏈変粈涔堝叧緋匯?
鏌ヤ簡鏌ョ浉鍏寵祫鏂欙紝鎬葷畻灝嗚繖浜涢棶棰樺紕娓呮浜嗭紝欏哄甫涔熶簡瑙d簡涓浜?span lang=EN-US>Unicode鐨勭粏鑺傘傚啓鎴愪竴綃囨枃绔狅紝閫佺粰鏈夎繃綾諱技鐤戦棶鐨勬湅鍙嬨傛湰鏂囧湪鍐欎綔鏃跺敖閲忓仛鍒伴氫織鏄撴噦錛屼絾瑕佹眰璇昏呯煡閬撲粈涔堟槸瀛楄妭錛屼粈涔堟槸鍗佸叚榪涘埗銆?span lang=EN-US>
big endian鍜?span lang=EN-US>little endian鏄?span lang=EN-US>CPU澶勭悊澶氬瓧鑺傛暟鐨勪笉鍚屾柟寮忋備緥濡?span lang=EN-US>“姹?span lang=EN-US>”瀛楃殑Unicode緙栫爜鏄?st1:chmetcnv unitname="C" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">6C49銆傞偅涔堝啓鍒版枃浠墮噷鏃訛紝絀剁珶鏄皢
“endian”榪欎釜璇嶅嚭鑷婃牸鍒椾經娓歌銆嬨傚皬浜哄浗鐨勫唴鎴樺氨婧愪簬鍚冮浮铔嬫椂鏄┒绔熶粠澶уご(Big-Endian)鏁插紑榪樻槸浠庡皬澶?span lang=EN-US>(Little-Endian)鏁插紑錛岀敱姝ゆ浘鍙戠敓榪囧叚嬈″彌涔憋紝鍏朵腑涓涓殗甯濋佷簡鍛斤紝鍙︿竴涓涪浜嗙帇浣嶃?span lang=EN-US>
鎴戜滑涓鑸皢endian緲昏瘧鎴?span lang=EN-US>“瀛楄妭搴?span lang=EN-US>”錛屽皢big endian鍜?span lang=EN-US>little endian縐頒綔“澶у熬”鍜?span lang=EN-US>“灝忓熬”銆?span lang=EN-US>
瀛楃蹇呴』緙栫爜鍚庢墠鑳借璁$畻鏈哄鐞嗐傝綆楁満浣跨敤鐨勭己鐪佺紪鐮佹柟寮忓氨鏄綆楁満鐨勫唴鐮併傛棭鏈熺殑璁$畻鏈轟嬌鐢?span lang=EN-US>7浣嶇殑ASCII緙栫爜錛屼負浜嗗鐞嗘眽瀛楋紝紼嬪簭鍛樿璁′簡鐢ㄤ簬綆浣撲腑鏂囩殑GB2312鍜岀敤浜庣箒浣撲腑鏂囩殑big5銆?span lang=EN-US>
GB2312(1980騫?span lang=EN-US>)涓鍏辨敹褰曚簡7445涓瓧絎︼紝鍖呮嫭6763涓眽瀛楀拰682涓叾瀹冪鍙楓傛眽瀛楀尯鐨勫唴鐮佽寖鍥撮珮瀛楄妭浠?span lang=EN-US>B0-F7錛屼綆瀛楄妭浠?span lang=EN-US>A1-FE錛屽崰鐢ㄧ殑鐮佷綅鏄?span lang=EN-US>72*94=6768銆傚叾涓湁5涓┖浣嶆槸D7FA-D7FE銆?span lang=EN-US>
GB2312鏀寔鐨勬眽瀛楀お灝戙?span lang=EN-US>1995騫寸殑姹夊瓧鎵╁睍瑙勮寖GBK1.0鏀跺綍浜?span lang=EN-US>21886涓鍙鳳紝瀹冨垎涓烘眽瀛楀尯鍜屽浘褰㈢鍙峰尯銆傛眽瀛楀尯鍖呮嫭21003涓瓧絎︺?span lang=EN-US>2000騫寸殑GB18030鏄彇浠?span lang=EN-US>GBK1.0鐨勬寮忓浗瀹舵爣鍑嗐傝鏍囧噯鏀跺綍浜?span lang=EN-US>27484涓眽瀛楋紝鍚屾椂榪樻敹褰曚簡钘忔枃銆佽挋鏂囥佺淮鍚懼皵鏂囩瓑涓昏鐨勫皯鏁版皯鏃忔枃瀛椼傜幇鍦ㄧ殑PC騫沖彴蹇呴』鏀寔GB18030錛屽宓屽叆寮忎駭鍝佹殏涓嶄綔瑕佹眰銆傛墍浠ユ墜鏈恒?span lang=EN-US>MP3涓鑸彧鏀寔GB2312銆?span lang=EN-US>
浠?span lang=EN-US>ASCII銆?span lang=EN-US>GB2312銆?span lang=EN-US>GBK鍒?span lang=EN-US>GB18030錛岃繖浜涚紪鐮佹柟娉曟槸鍚戜笅鍏煎鐨勶紝鍗沖悓涓涓瓧絎﹀湪榪欎簺鏂規涓繪槸鏈夌浉鍚岀殑緙栫爜錛屽悗闈㈢殑鏍囧噯鏀寔鏇村鐨勫瓧絎︺傚湪榪欎簺緙栫爜涓紝鑻辨枃鍜屼腑鏂囧彲浠ョ粺涓鍦板鐞嗐傚尯鍒嗕腑鏂囩紪鐮佺殑鏂規硶鏄珮瀛楄妭鐨勬渶楂樹綅涓嶄負0銆傛寜鐓х▼搴忓憳鐨勭О鍛鹼紝GB2312銆?span lang=EN-US>GBK鍒?span lang=EN-US>GB18030閮藉睘浜庡弻瀛楄妭瀛楃闆?span lang=EN-US> (DBCS)銆?span lang=EN-US>
鏈夌殑涓枃Windows鐨勭己鐪佸唴鐮佽繕鏄?span lang=EN-US>GBK錛屽彲浠ラ氳繃GB18030鍗囩駭鍖呭崌綰у埌GB18030銆備笉榪?span lang=EN-US>GB18030鐩稿GBK澧炲姞鐨勫瓧絎︼紝鏅氫漢鏄緢闅劇敤鍒扮殑錛岄氬父鎴戜滑榪樻槸鐢?span lang=EN-US>GBK鎸囦唬涓枃Windows鍐呯爜銆?span lang=EN-US>
榪欓噷榪樻湁涓浜涚粏鑺傦細
· GB2312鐨勫師鏂囪繕鏄尯浣嶇爜錛屼粠鍖轟綅鐮佸埌鍐呯爜錛岄渶瑕佸湪楂樺瓧鑺傚拰浣庡瓧鑺備笂鍒嗗埆鍔犱笂A0銆?span lang=EN-US>
· 鍦?span lang=EN-US>DBCS涓紝GB鍐呯爜鐨勫瓨鍌ㄦ牸寮忓緇堟槸big endian錛屽嵆楂樹綅鍦ㄥ墠銆?span lang=EN-US>
· GB2312鐨勪袱涓瓧鑺傜殑鏈楂樹綅閮芥槸1銆備絾絎﹀悎榪欎釜鏉′歡鐨勭爜浣嶅彧鏈?span lang=EN-US>128*128=16384涓傛墍浠?span lang=EN-US>GBK鍜?span lang=EN-US>GB18030鐨勪綆瀛楄妭鏈楂樹綅閮藉彲鑳戒笉鏄?span lang=EN-US>1銆備笉榪囪繖涓嶅獎鍝?span lang=EN-US>DBCS瀛楃嫻佺殑瑙f瀽錛氬湪璇誨彇DBCS瀛楃嫻佹椂錛屽彧瑕侀亣鍒伴珮浣嶄負1鐨勫瓧鑺傦紝灝卞彲浠ュ皢涓嬩袱涓瓧鑺備綔涓轟竴涓弻瀛楄妭緙栫爜錛岃屼笉鐢ㄧ浣庡瓧鑺傜殑楂樹綅鏄粈涔堛?span lang=EN-US>
鍓嶉潰鎻愬埌浠?span lang=EN-US>ASCII銆?span lang=EN-US>GB2312銆?span lang=EN-US>GBK鍒?span lang=EN-US>GB18030鐨勭紪鐮佹柟娉曟槸鍚戜笅鍏煎鐨勩傝?span lang=EN-US>Unicode鍙笌ASCII鍏煎錛堟洿鍑嗙‘鍦拌錛屾槸涓?span lang=EN-US>ISO-8859-1鍏煎錛夛紝涓?span lang=EN-US>GB鐮佷笉鍏煎銆備緥濡?span lang=EN-US>“姹?span lang=EN-US>”瀛楃殑Unicode緙栫爜鏄?st1:chmetcnv unitname="C" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">6C49錛岃?span lang=EN-US>GB鐮佹槸BABA銆?span lang=EN-US>
Unicode涔熸槸涓縐嶅瓧絎︾紪鐮佹柟娉曪紝涓嶈繃瀹冩槸鐢卞浗闄呯粍緇囪璁★紝鍙互瀹圭撼鍏ㄤ笘鐣屾墍鏈夎璦鏂囧瓧鐨勭紪鐮佹柟妗堛?span lang=EN-US>Unicode鐨勫鍚嶆槸"Universal Multiple-Octet Coded Character Set"錛岀畝縐頒負UCS銆?span lang=EN-US>UCS鍙互鐪嬩綔鏄?span lang=EN-US>"Unicode Character Set"鐨勭緝鍐欍?span lang=EN-US>
鏍規嵁緇村熀鐧劇鍏ㄤ功(http://zh.wikipedia.org/wiki/)鐨勮杞斤細鍘嗗彶涓婂瓨鍦ㄤ袱涓瘯鍥劇嫭绔嬭璁?span lang=EN-US>Unicode鐨勭粍緇囷紝鍗沖浗闄呮爣鍑嗗寲緇勭粐錛?span lang=EN-US>ISO錛夊拰涓涓蔣浠跺埗閫犲晢鐨勫崗浼氾紙unicode.org錛夈?span lang=EN-US>ISO寮鍙戜簡ISO 10646欏圭洰錛?span lang=EN-US>Unicode鍗忎細寮鍙戜簡Unicode欏圭洰銆?span lang=EN-US>
鍦?span lang=EN-US>1991騫村墠鍚庯紝鍙屾柟閮借璇嗗埌涓栫晫涓嶉渶瑕佷袱涓笉鍏煎鐨勫瓧絎﹂泦銆備簬鏄畠浠紑濮嬪悎騫跺弻鏂圭殑宸ヤ綔鎴愭灉錛屽茍涓哄垱绔嬩竴涓崟涓緙栫爜琛ㄨ屽崗鍚屽伐浣溿備粠Unicode2.0寮濮嬶紝Unicode欏圭洰閲囩敤浜嗕笌ISO 10646-1鐩稿悓鐨勫瓧搴撳拰瀛楃爜銆?span lang=EN-US>
鐩墠涓や釜欏圭洰浠嶉兘瀛樺湪錛屽茍鐙珛鍦板叕甯冨悇鑷殑鏍囧噯銆?span lang=EN-US>Unicode鍗忎細鐜板湪鐨勬渶鏂扮増鏈槸2005騫寸殑Unicode
UCS瑙勫畾浜嗘庝箞鐢ㄥ涓瓧鑺傝〃紺哄悇縐嶆枃瀛椼傛庢牱浼犺緭榪欎簺緙栫爜錛屾槸鐢?span lang=EN-US>UTF(UCS Transformation Format)瑙勮寖瑙勫畾鐨勶紝甯歌鐨?span lang=EN-US>UTF瑙勮寖鍖呮嫭UTF-8銆?span lang=EN-US>UTF-7銆?span lang=EN-US>UTF-16銆?span lang=EN-US>
IETF鐨?span lang=EN-US>RFC2781鍜?span lang=EN-US>RFC3629浠?span lang=EN-US>RFC鐨勪竴璐鏍鹼紝娓呮櫚銆佹槑蹇張涓嶅け涓ヨ皚鍦版弿榪頒簡UTF-16鍜?span lang=EN-US>UTF-8鐨勭紪鐮佹柟娉曘傛垜鎬繪槸璁頒笉寰?span lang=EN-US>IETF鏄?span lang=EN-US>Internet Engineering Task Force鐨勭緝鍐欍備絾IETF璐熻矗緇存姢鐨?span lang=EN-US>RFC鏄?span lang=EN-US>Internet涓婁竴鍒囪鑼冪殑鍩虹銆?span lang=EN-US>
UCS鏈変袱縐嶆牸寮忥細UCS-2鍜?span lang=EN-US>UCS-4銆傞【鍚嶆濅箟錛?span lang=EN-US>UCS-2灝辨槸鐢ㄤ袱涓瓧鑺傜紪鐮侊紝UCS-4灝辨槸鐢?span lang=EN-US>4涓瓧鑺傦紙瀹為檯涓婂彧鐢ㄤ簡31浣嶏紝鏈楂樹綅蹇呴』涓?span lang=EN-US>0錛夌紪鐮併備笅闈㈣鎴戜滑鍋氫竴浜涚畝鍗曠殑鏁板娓告垙錛?span lang=EN-US>
UCS-2鏈?span lang=EN-US>2^16=65536涓爜浣嶏紝UCS-4鏈?span lang=EN-US>2^31=2147483648涓爜浣嶃?span lang=EN-US>
UCS-4鏍規嵁鏈楂樹綅涓?span lang=EN-US>0鐨勬渶楂樺瓧鑺傚垎鎴?span lang=EN-US>2^7=128涓?span lang=EN-US>group銆傛瘡涓?span lang=EN-US>group鍐嶆牴鎹楂樺瓧鑺傚垎涓?span lang=EN-US>256涓?span lang=EN-US>plane銆傛瘡涓?span lang=EN-US>plane鏍規嵁絎?span lang=EN-US>3涓瓧鑺傚垎涓?span lang=EN-US>256琛?span lang=EN-US> (rows)錛屾瘡琛屽寘鍚?span lang=EN-US>256涓?span lang=EN-US>cells銆傚綋鐒跺悓涓琛岀殑cells鍙槸鏈鍚庝竴涓瓧鑺備笉鍚岋紝鍏朵綑閮界浉鍚屻?span lang=EN-US>
group 0鐨?span lang=EN-US>plane 0琚О浣?span lang=EN-US>Basic Multilingual Plane, 鍗?span lang=EN-US>BMP銆傛垨鑰呰UCS-4涓紝楂樹袱涓瓧鑺備負0鐨勭爜浣嶈縐頒綔BMP銆?span lang=EN-US>
灝?span lang=EN-US>UCS-4鐨?span lang=EN-US>BMP鍘繪帀鍓嶉潰鐨勪袱涓浂瀛楄妭灝卞緱鍒頒簡UCS-2銆傚湪UCS-2鐨勪袱涓瓧鑺傚墠鍔犱笂涓や釜闆跺瓧鑺傦紝灝卞緱鍒頒簡UCS-4鐨?span lang=EN-US>BMP銆傝岀洰鍓嶇殑UCS-4瑙勮寖涓繕娌℃湁浠諱綍瀛楃琚垎閰嶅湪BMP涔嬪銆?span lang=EN-US>
UTF-8灝辨槸浠?span lang=EN-US>8浣嶄負鍗曞厓瀵?span lang=EN-US>UCS榪涜緙栫爜銆備粠UCS-2鍒?span lang=EN-US>UTF-8鐨勭紪鐮佹柟寮忓涓嬶細
|
UCS-2緙栫爜(16榪涘埗) |
UTF-8 瀛楄妭嫻?span lang=EN-US>(浜岃繘鍒?span lang=EN-US>) |
|
0000 - |
0xxxxxxx |
|
0080 - 07FF |
110xxxxx 10xxxxxx |
|
0800 - FFFF |
1110xxxx 10xxxxxx 10xxxxxx |
渚嬪“姹?span lang=EN-US>”瀛楃殑Unicode緙栫爜鏄?st1:chmetcnv unitname="C" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">6C49銆?st1:chmetcnv unitname="C" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">6C49鍦?span lang=EN-US>0800-FFFF涔嬮棿錛屾墍浠ヨ偗瀹氳鐢?span lang=EN-US>3瀛楄妭妯℃澘浜嗭細1110xxxx 10xxxxxx 10xxxxxx銆傚皢
璇昏呭彲浠ョ敤璁頒簨鏈祴璇曚竴涓嬫垜浠殑緙栫爜鏄惁姝g‘銆?span lang=EN-US>
UTF-16浠?span lang=EN-US>16浣嶄負鍗曞厓瀵?span lang=EN-US>UCS榪涜緙栫爜銆傚浜庡皬浜?span lang=EN-US>0x10000鐨?span lang=EN-US>UCS鐮侊紝UTF-16緙栫爜灝辯瓑浜?span lang=EN-US>UCS鐮佸搴旂殑16浣嶆棤絎﹀彿鏁存暟銆傚浜庝笉灝忎簬0x10000鐨?span lang=EN-US>UCS鐮侊紝瀹氫箟浜嗕竴涓畻娉曘備笉榪囩敱浜庡疄闄呬嬌鐢ㄧ殑UCS2錛屾垨鑰?span lang=EN-US>UCS4鐨?span lang=EN-US>BMP蹇呯劧灝忎簬0x10000錛屾墍浠ュ氨鐩墠鑰岃█錛屽彲浠ヨ涓?span lang=EN-US>UTF-16鍜?span lang=EN-US>UCS-2鍩烘湰鐩稿悓銆備絾UCS-2鍙槸涓涓紪鐮佹柟妗堬紝UTF-16鍗磋鐢ㄤ簬瀹為檯鐨勪紶杈擄紝鎵浠ュ氨涓嶅緱涓嶈冭檻瀛楄妭搴忕殑闂銆?span lang=EN-US>
UTF-8浠ュ瓧鑺備負緙栫爜鍗曞厓錛屾病鏈夊瓧鑺傚簭鐨勯棶棰樸?span lang=EN-US>UTF-16浠ヤ袱涓瓧鑺備負緙栫爜鍗曞厓錛屽湪瑙i噴涓涓?span lang=EN-US>UTF-16鏂囨湰鍓嶏紝棣栧厛瑕佸紕娓呮姣忎釜緙栫爜鍗曞厓鐨勫瓧鑺傚簭銆備緥濡傛敹鍒頒竴涓?span lang=EN-US>“濂?span lang=EN-US>”鐨?span lang=EN-US>Unicode緙栫爜鏄?span lang=EN-US>594E錛?span lang=EN-US>“涔?span lang=EN-US>”鐨?span lang=EN-US>Unicode緙栫爜鏄?span lang=EN-US>4E59銆傚鏋滄垜浠敹鍒?span lang=EN-US>UTF-16瀛楄妭嫻?span lang=EN-US>“594E”錛岄偅涔堣繖鏄?span lang=EN-US>“濂?span lang=EN-US>”榪樻槸“涔?span lang=EN-US>”錛?span lang=EN-US>
Unicode瑙勮寖涓帹鑽愮殑鏍囪瀛楄妭欏哄簭鐨勬柟娉曟槸BOM銆?span lang=EN-US>BOM涓嶆槸“Bill Of Material”鐨?span lang=EN-US>BOM琛紝鑰屾槸Byte Order Mark銆?span lang=EN-US>BOM鏄竴涓湁鐐瑰皬鑱槑鐨勬兂娉曪細
鍦?span lang=EN-US>UCS緙栫爜涓湁涓涓彨鍋?span lang=EN-US>"ZERO WIDTH NO-BREAK SPACE"鐨勫瓧絎︼紝瀹冪殑緙栫爜鏄?span lang=EN-US>FEFF銆傝?span lang=EN-US>FFFE鍦?span lang=EN-US>UCS涓槸涓嶅瓨鍦ㄧ殑瀛楃錛屾墍浠ヤ笉搴旇鍑虹幇鍦ㄥ疄闄呬紶杈撲腑銆?span lang=EN-US>UCS瑙勮寖寤鴻鎴戜滑鍦ㄤ紶杈撳瓧鑺傛祦鍓嶏紝鍏堜紶杈撳瓧絎?span lang=EN-US>"ZERO WIDTH NO-BREAK SPACE"銆?span lang=EN-US>
榪欐牱濡傛灉鎺ユ敹鑰呮敹鍒?span lang=EN-US>FEFF錛屽氨琛ㄦ槑榪欎釜瀛楄妭嫻佹槸Big-Endian鐨勶紱濡傛灉鏀跺埌FFFE錛屽氨琛ㄦ槑榪欎釜瀛楄妭嫻佹槸Little-Endian鐨勩傚洜姝ゅ瓧絎?span lang=EN-US>"ZERO WIDTH NO-BREAK SPACE"鍙堣縐頒綔BOM銆?span lang=EN-US>
UTF-8涓嶉渶瑕?span lang=EN-US>BOM鏉ヨ〃鏄庡瓧鑺傞『搴忥紝浣嗗彲浠ョ敤BOM鏉ヨ〃鏄庣紪鐮佹柟寮忋傚瓧絎?span lang=EN-US>"ZERO WIDTH NO-BREAK SPACE"鐨?span lang=EN-US>UTF-8緙栫爜鏄?span lang=EN-US>EF BB BF錛堣鑰呭彲浠ョ敤鎴戜滑鍓嶉潰浠嬬粛鐨勭紪鐮佹柟娉曢獙璇佷竴涓嬶級銆傛墍浠ュ鏋滄帴鏀惰呮敹鍒頒互EF BB BF寮澶寸殑瀛楄妭嫻侊紝灝辯煡閬撹繖鏄?span lang=EN-US>UTF-8緙栫爜浜嗐?span lang=EN-US>
Windows灝辨槸浣跨敤BOM鏉ユ爣璁版枃鏈枃浠剁殑緙栫爜鏂瑰紡鐨勩?span lang=EN-US>
鏈枃涓昏鍙傝冪殑璧勬枡鏄?span lang=EN-US> "Short overview of ISO-IEC 10646 and Unicode" (http://www.nada.kth.se/i18n/ucs/unicode-iso10646-oview.html)銆?span lang=EN-US>
鎴戣繕鎵句簡涓ょ瘒鐪嬩笂鍘諱笉閿欑殑璧勬枡錛屼笉榪囧洜涓烘垜寮濮嬬殑鐤戦棶閮芥壘鍒頒簡絳旀錛屾墍浠ュ氨娌℃湁鐪嬶細
鎴戝啓榪?span lang=EN-US>UTF-8銆?span lang=EN-US>UCS-2銆?span lang=EN-US>GBK鐩鎬簰杞崲鐨勮蔣浠跺寘錛屽寘鎷嬌鐢?span lang=EN-US>Windows API鍜屼笉浣跨敤Windows API鐨勭増鏈備互鍚庢湁鏃墮棿鐨勮瘽錛屾垜浼氭暣鐞嗕竴涓嬫斁鍒版垜鐨勪釜浜轟富欏典笂(http://fmddlmyy.home4u.china.com)銆?span lang=EN-US>
鎴戞槸鎯蟲竻妤氭墍鏈夐棶棰樺悗鎵嶅紑濮嬪啓榪欑瘒鏂囩珷鐨勶紝鍘熶互涓轟竴浼氬効灝辮兘鍐欏ソ銆傛病鎯沖埌鑰冭檻鎺緸鍜屾煡璇佺粏鑺傝姳璐逛簡寰堥暱鏃墮棿錛岀珶鐒朵粠涓嬪崍1:30鍐欏埌9:00銆傚笇鏈涙湁璇昏呰兘浠庝腑鍙楃泭銆?span lang=EN-US>
闄勫綍1 鍐嶈璇村尯浣嶇爜銆丟B2312銆佸唴鐮佸拰浠g爜欏?br>鏈夌殑鏈嬪弸瀵規枃绔犱腑榪欏彞璇濊繕鏈夌枒闂細
“GB2312鐨勫師鏂囪繕鏄尯浣嶇爜錛屼粠鍖轟綅鐮佸埌鍐呯爜錛岄渶瑕佸湪楂樺瓧鑺傚拰浣庡瓧鑺備笂鍒嗗埆鍔犱笂A0銆?#8221;
鎴戝啀璇︾粏瑙i噴涓涓嬶細
“GB2312鐨勫師鏂?#8221;鏄寚鍥藉1980騫寸殑涓涓爣鍑嗐婁腑鍗庝漢姘戝叡鍜屽浗鍥藉鏍囧噯 淇℃伅浜ゆ崲鐢ㄦ眽瀛楃紪鐮佸瓧絎﹂泦 鍩烘湰闆?nbsp;GB 2312-80銆嬨傝繖涓爣鍑嗙敤涓や釜鏁版潵緙栫爜姹夊瓧鍜屼腑鏂囩鍙楓傜涓涓暟縐頒負“鍖?#8221;錛岀浜屼釜鏁扮О涓?#8220;浣?#8221;銆傛墍浠ヤ篃縐頒負鍖轟綅鐮併?-9鍖烘槸涓枃絎﹀彿錛?6-55鍖烘槸涓綰ф眽瀛楋紝56-87鍖烘槸浜岀駭姹夊瓧銆傜幇鍦╓indows涔熻繕鏈夊尯浣嶈緭鍏ユ硶錛屼緥濡傝緭鍏?601寰楀埌“鍟?#8221;銆傦紙榪欎釜鍖轟綅杈撳叆娉曞彲浠ヨ嚜鍔ㄨ瘑鍒?6榪涘埗鐨凣B2312鍜?0榪涘埗鐨勫尯浣嶇爜錛屼篃灝辨槸璇磋緭鍏0A1鍚屾牱浼氬緱鍒?#8220;鍟?#8221;銆傦級
鍐呯爜鏄寚鎿嶄綔緋葷粺鍐呴儴鐨勫瓧絎︾紪鐮併傛棭鏈熸搷浣滅郴緇熺殑鍐呯爜鏄笌璇█鐩稿叧鐨勩傜幇鍦ㄧ殑Windows鍦ㄧ郴緇熷唴閮ㄦ敮鎸乁nicode錛岀劧鍚庣敤浠g爜欏甸傚簲鍚勭璇█錛?#8220;鍐呯爜”鐨勬蹇靛氨姣旇緝妯$硦浜嗐傚井杞竴鑸皢緙虹渷浠g爜欏墊寚瀹氱殑緙栫爜璇存垚鏄唴鐮併?br>
鍐呯爜榪欎釜璇嶆眹錛屽茍娌℃湁浠涔堝畼鏂圭殑瀹氫箟錛屼唬鐮侀〉涔熷彧鏄井杞繖涓叕鍙哥殑鍙硶銆備綔涓虹▼搴忓憳錛屾垜浠彧瑕佺煡閬撳畠浠槸浠涔堜笢瑗匡紝娌℃湁蹇呰榪囧鍦拌冭瘉榪欎簺鍚嶈瘝銆?br>
鎵璋撲唬鐮侀〉(code page)灝辨槸閽堝涓縐嶈璦鏂囧瓧鐨勫瓧絎︾紪鐮併備緥濡侴BK鐨刢ode page鏄疌P936錛孊IG5鐨刢ode page鏄疌P950錛孏B2312鐨刢ode page鏄疌P20936銆?br>
Windows涓湁緙虹渷浠g爜欏電殑姒傚康錛屽嵆緙虹渷鐢ㄤ粈涔堢紪鐮佹潵瑙i噴瀛楃銆備緥濡俉indows鐨勮浜嬫湰鎵撳紑浜嗕竴涓枃鏈枃浠訛紝閲岄潰鐨勫唴瀹規槸瀛楄妭嫻侊細BA銆丅A銆丏7銆丏6銆俉indows搴旇鍘繪庝箞瑙i噴瀹冨憿錛?br>
鏄寜鐓nicode緙栫爜瑙i噴銆佽繕鏄寜鐓BK瑙i噴銆佽繕鏄寜鐓IG5瑙i噴錛岃繕鏄寜鐓SO8859-1鍘昏В閲婏紵濡傛灉鎸塆BK鍘昏В閲婏紝灝變細寰楀埌“姹夊瓧”涓や釜瀛椼傛寜鐓у叾瀹冪紪鐮佽В閲婏紝鍙兘鎵句笉鍒板搴旂殑瀛楃錛屼篃鍙兘鎵懼埌閿欒鐨勫瓧絎︺傛墍璋?#8220;閿欒”鏄寚涓庢枃鏈綔鑰呯殑鏈剰涓嶇錛岃繖鏃跺氨浜х敓浜嗕貢鐮併?br>
絳旀鏄疻indows鎸夌収褰撳墠鐨勭己鐪佷唬鐮侀〉鍘昏В閲婃枃鏈枃浠墮噷鐨勫瓧鑺傛祦銆傜己鐪佷唬鐮侀〉鍙互閫氳繃鎺у埗闈㈡澘鐨勫尯鍩熼夐」璁劇疆銆傝浜嬫湰鐨勫彟瀛樹負涓湁涓欏笰NSI錛屽叾瀹炲氨鏄寜鐓х己鐪佷唬鐮侀〉鐨勭紪鐮佹柟娉曚繚瀛樸?br>
Windows鐨勫唴鐮佹槸Unicode錛屽畠鍦ㄦ妧鏈笂鍙互鍚屾椂鏀寔澶氫釜浠g爜欏點傚彧瑕佹枃浠惰兘璇存槑鑷繁浣跨敤浠涔堢紪鐮侊紝鐢ㄦ埛鍙堝畨瑁呬簡瀵瑰簲鐨勪唬鐮侀〉錛學indows灝辮兘姝g‘鏄劇ず錛屼緥濡傚湪HTML鏂囦歡涓氨鍙互鎸囧畾charset銆?br>
鏈夌殑HTML鏂囦歡浣滆咃紝鐗瑰埆鏄嫳鏂囦綔鑰咃紝璁や負涓栫晫涓婃墍鏈変漢閮戒嬌鐢ㄨ嫳鏂囷紝鍦ㄦ枃浠朵腑涓嶆寚瀹歝harset銆傚鏋滀粬浣跨敤浜?x80-0xff涔嬮棿鐨勫瓧絎︼紝涓枃Windows鍙堟寜鐓х己鐪佺殑GBK鍘昏В閲婏紝灝變細鍑虹幇涔辯爜銆傝繖鏃跺彧瑕佸湪榪欎釜html鏂囦歡涓姞涓婃寚瀹歝harset鐨勮鍙ワ紝渚嬪錛?br><meta http-equiv="Content-Type" content="text/html; charset=ISO8859-1">
濡傛灉鍘熶綔鑰呬嬌鐢ㄧ殑浠g爜欏靛拰ISO8859-1鍏煎錛屽氨涓嶄細鍑虹幇涔辯爜浜嗐?br>
鍐嶈鍖轟綅鐮侊紝鍟婄殑鍖轟綅鐮佹槸1601錛屽啓鎴?6榪涘埗鏄?x10,0x01銆傝繖鍜岃綆楁満騫挎硾浣跨敤鐨凙SCII緙栫爜鍐茬獊銆備負浜嗗吋瀹?0-7f鐨凙SCII緙栫爜錛屾垜浠湪鍖轟綅鐮佺殑楂樸佷綆瀛楄妭涓婂垎鍒姞涓夾0銆傝繖鏍?#8220;鍟?#8221;鐨勭紪鐮佸氨鎴愪負B0A1銆傛垜浠皢鍔犺繃涓や釜A0鐨勭紪鐮佷篃縐頒負GB2312緙栫爜錛岃櫧鐒禛B2312鐨勫師鏂囨牴鏈病鎻愬埌榪欎竴鐐廣?span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-bidi-font-family: arial">