錐忖憲嚥Unicode
<貧匯准
和匯准>
壓C囂冱嶄?厘断聞喘char栖協吶忖憲?媼喘匯倖忖准?恷謹峪嬬燕幣128倖忖憲?匆祥頁ASCII鷹嶄議忖憲。柴麻字軟坿噐胆忽?char 辛參燕幣侭嗤議哂猟忖憲?壓參哂囂葎銚囂議忽社頼畠短嗤諒籾。
徽頁弊順貧贋壓載謹音揖議囂冱?箭泌査囂、査囂、晩囂吉嗤撹認貧嵐倖忖憲?俶勣喘謹倖忖准栖燕幣?各岻葎錐忖憲(Wide Character)。Unicode 頁錐忖憲園鷹議匯嶽?厮将瓜孖旗柴麻字峺協葎潮範議園鷹圭塀?Windows 2000參朔議荷恬狼由?淫凄Windows 2000、XP、Vista、Win7、Win8、Win10、Windows Phone、Windows Server 吉?万断由各葎 Windows NT?脅貫久蚊屶隔Unicode?贋函丼楕曳 char 勣互。
厚謹坪否萩臥心?ASCII園鷹嚥Unicode園鷹
泌惚協吶錐忖憲堪?俶勣紗念弸
錐忖憲幣箭?
ch=1, wch=2, str=12, wstr=14
wstr 岻侭參曳 str 謹曾倖忖准頁咀葎?忖憲 'C' 媼喘曾倖忖准?忖憲堪潤崩炎崗 '0円' 匆媼喘曾倖忖准。
strlen(str)=11, wcslen(wstr)=6
strlen 議塰佩潤惚?堡参師鐳沓r鯲ć謹冫燦沆崕旌焞ň燦沆峽蕺橡磽ii? wcslen 委曾倖忖准恬葎匯倖忖憲柴麻。
泌惚低錬李殻會嬬校壓光嶽井云議Windows荷恬狼由嶄塰佩?椎担祥俶勣略擦曾倖井云議坿旗鷹?ASCII 井才 Unicode 井。ASCII 忖憲才 Unicode 忖憲議協吶、聞喘脅音匯劔?勣?壓匯倖井云議坿旗鷹嶄恂惹否侃尖氏掲械是佃?勣恂寄楚議垢恬?斤殻會埀栖傍酒岷頁悴知。
音狛?Windows 嗽葎厘断恂阻匯周挫並?厮将侃尖阻惹否來諒籾。万頁奕担恂欺議椿?
箭泌斤噐忖憲堪?ASCII 嶄聞喘 char 栖協吶?遇 Unicode 嶄聞喘 wchar_t 栖協吶?旺拝俶勣耶紗念弸
悳潤?喇噐光嶽光劔議圻咀?厘断單枠聞喘Windows協吶議方象窃侏、崎、潤更悶吉?宸劔園亟議殻會惹否來熟挫?音喘深打ASCII才Unicode議諒籾。徽宸匆揮栖阻匯倖薬媾?祥頁勣母呂Window協吶議方象窃侏、崎、潤更悶吉。
徽頁弊順貧贋壓載謹音揖議囂冱?箭泌査囂、査囂、晩囂吉嗤撹認貧嵐倖忖憲?俶勣喘謹倖忖准栖燕幣?各岻葎錐忖憲(Wide Character)。Unicode 頁錐忖憲園鷹議匯嶽?厮将瓜孖旗柴麻字峺協葎潮範議園鷹圭塀?Windows 2000參朔議荷恬狼由?淫凄Windows 2000、XP、Vista、Win7、Win8、Win10、Windows Phone、Windows Server 吉?万断由各葎 Windows NT?脅貫久蚊屶隔Unicode?贋函丼楕曳 char 勣互。
厚謹坪否萩臥心?ASCII園鷹嚥Unicode園鷹
C囂冱嶄議錐忖憲
壓C囂冱嶄?聞喘wchar.h遊猟周嶄議wchar_t栖協吶錐忖憲?箭泌?
wchar_t ch = 'A';wchar_t 瓜協吶葎
typedef unsigned short wchar_t?才匯倖涙憲催屁侏匯劔?媼喘曾倖忖准。泌惚協吶錐忖憲堪?俶勣紗念弸
L?箭泌?
wchar_t *str = L"C囂冱嶄猟利";
L頁駅倬勣紗議?旺拝嚥忖憲堪岻寂音嬬嗤腎鯉?峪嗤宸劔園咎匂嘉岑祇耽倖忖憲媼喘曾倖忖准。錐忖憲幣箭?
#include <stdio.h>
#include <wchar.h>
int main(){
char ch = 'A';
wchar_t wch = 'A';
char str[] = "C囂冱嶄猟利";
wchar_t wstr[] = L"C囂冱嶄猟利";
printf("ch=%d, wch=%d, str=%d, wstr=%d\n", sizeof(ch), sizeof(wch), sizeof(str), sizeof(wstr));
return 0;
}
塰佩潤惚?ch=1, wch=2, str=12, wstr=14
wstr 岻侭參曳 str 謹曾倖忖准頁咀葎?忖憲 'C' 媼喘曾倖忖准?忖憲堪潤崩炎崗 '0円' 匆媼喘曾倖忖准。
錐忖憲堪議海業
柴麻ASCII忖憲堪海業聞喘 strlen 痕方?柴麻錐忖憲堪海業聞喘 wcslen 痕方?
#include <stdio.h>
#include <wchar.h>
#include <string.h>
int main(){
char str[] = "C囂冱嶄猟利";
wchar_t wstr[] = L"C囂冱嶄猟利";
printf("strlen(str)=%d, wcslen(wstr)=%d\n", strlen(str), wcslen(wstr));
return 0;
}
塰佩潤惚?strlen(str)=11, wcslen(wstr)=6
strlen 議塰佩潤惚?堡参師鐳沓r鯲ć謹冫燦沆崕旌焞ň燦沆峽蕺橡磽ii? wcslen 委曾倖忖准恬葎匯倖忖憲柴麻。
廣吭?wcslen 壓 string.h 才 wchar.h 遊猟周嶄譲嗤傍苧。
略擦匯倖井云議坿旗鷹
壓 Windows NT 參念議荷恬狼由嶄?封崛淫凄 Windows 98?斤錐忖憲議屶隔脅音頁載挫?侭參寄謹秤趨和聞喘ASCII園鷹。Windows NT 容竃參朔?厮将貫久蚊屶隔阻Unicode?侭參壓 Windows NT 貧議殻會寄謹聞喘Unicode。泌惚低錬李殻會嬬校壓光嶽井云議Windows荷恬狼由嶄塰佩?椎担祥俶勣略擦曾倖井云議坿旗鷹?ASCII 井才 Unicode 井。ASCII 忖憲才 Unicode 忖憲議協吶、聞喘脅音匯劔?勣?壓匯倖井云議坿旗鷹嶄恂惹否侃尖氏掲械是佃?勣恂寄楚議垢恬?斤殻會埀栖傍酒岷頁悴知。
音狛?Windows 嗽葎厘断恂阻匯周挫並?厮将侃尖阻惹否來諒籾。万頁奕担恂欺議椿?
箭泌斤噐忖憲堪?ASCII 嶄聞喘 char 栖協吶?遇 Unicode 嶄聞喘 wchar_t 栖協吶?旺拝俶勣耶紗念弸
L。椎担壓 windows.h 遊猟周嶄?賜宀頁万淫根議凪麿遊猟周?祥宸劔栖侃尖?
#ifdef UNICODE typedef wchar_t TCHAR; #define TEXT(quote) L##quote #else typedef char TCHAR #define TEXT(quote) quote #endif厘断壓坿鷹嶄辛參宸劔栖聞喘?
TCHAR str[] = TEXT("C囂冱嶄猟利");
泌惚頁Unicode井?匆祥頁協吶阻UNICODE崎?椎担貧中議囂鞘吉勺噐?
wchar_t str[] = L"C囂冱嶄猟利";泌惚頁ASCII?匆祥頁短嗤協吶UNICODE崎?椎担吉勺噐?
char str[] = "C囂冱嶄猟利";壓Windows嶄?昧侃辛需宸劔議侃尖。埋隼孖旗荷恬狼由脅厮将屶隔Unicode?涙俶壅深打嚥ASCII議惹否來諒籾?徽頁卆隼勣葎宸乂煽雰諒籾原竃旗勺。
悳潤?喇噐光嶽光劔議圻咀?厘断單枠聞喘Windows協吶議方象窃侏、崎、潤更悶吉?宸劔園亟議殻會惹否來熟挫?音喘深打ASCII才Unicode議諒籾。徽宸匆揮栖阻匯倖薬媾?祥頁勣母呂Window協吶議方象窃侏、崎、潤更悶吉。
<貧匯准
和匯准>