􀈜􀇽􀈰􀎐􀄝􀉤􀈻􀅔􀊠􀁠􀋢􀂬􀉵􀉏􀋺􀄫􀁩􀇳􀇚􀉔
􀈨􀎍􀄏􀋗􀂠􀈏􀊊􀁶􀍡􀄒􀁟􀈁􀈮􀇁􀋐􀃋􀂖􀊠􀄒􀁠
􀀝􀁁􀀺􀀿􀀼􀁅􀀻 עברית
UTF-8 遍地开花
宣言
1. 本文的目的
􀇀􀂚􀉵􀉹􀈪􀈎􀂲􀌺 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀉵􀂮􀉮􀄤􀇳
􀇚􀎍􀆋􀇩􀆍􀅘􀆿􀁶􀃎􀅕􀁟􀊉􀉷􀅕􀂾􀄤􀍇􀂵􀊢
􀉮􀍅􀉵􀎇􀋿􀇽􀈜􀅔􀊠􀁴􀋅􀊂􀁠􀇀􀂚􀉻􀂵􀎍􀌹
􀊑􀂼􀉆􀄏􀂙􀇬􀎅􀆰􀋗􀎍􀍨􀂧􀌭􀂛􀉵􀅄􀈠􀆰􀎍􀆋􀈗􀃭􀂅􀍑􀃆􀅆􀊑 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉻􀃉􀉵 􀀵􀁇􀀺􀁠􀇀􀂚􀆔
􀌂 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎋􀇁􀆍􀁹􀈢􀌔􀎍􀇄􀈗􀇽􀈜􀎌􀉵􀃋􀂖􀋅􀊂􀈁􀆗􀄍􀆐􀌐􀉮􀂅􀅬􀍚􀍲􀋵􀆰􀋗􀂟􀎑􀉵􀆸
􀃔􀎍􀁷􀉍􀉮􀇃􀆐􀆜􀍑􀃆􀇧􀋼􀁠
􀁣􀁲􀎏􀂨􀉵􀂯􀅓􀈎􀍴􀆅􀉍􀋭􀉵 􀀭􀀬􀀞􀀉􀀍􀀒 􀋅􀊂􀎋􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁭􀉰􀆅􀆅􀌓􀊓􀁶􀎗􀅤􀅔􀊠􀎘􀇁􀆈
􀋘􀊓􀁶􀎗􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎘􀎌􀁠􀇀􀂚􀋿􀁶􀅘􀍪􀂁􀄴 􀀡􀀛􀀭 􀁺􀊪􀉵􀁫􀉮􀇽􀈜􀅂􀉫􀆏􀁳􀄏􀂙􀂮􀉮􀂙􀅅􀎍􀁩
􀆐􀌐􀄴􀃋􀂖􀊕􀆎􀆏􀉵􀀁􀀙􀀨􀀡􀀁􀁳􀈗􀁣􀆃􀁺􀄵􀁠
􀈜􀇽􀌸􀆔􀌂􀍁􀇖 􀀭􀀬􀀞􀀉􀀔 􀂫􀁶 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀆐􀉮􀊕􀆎􀃎􀍓􀉵􀅔􀊠􀁴􀋯􀊊􀈁􀆗􀎍􀅱􀊧􀉯􀂅􀃿􀉭 􀀙􀀨􀀡
􀁩􀇳􀇚 􀀭􀀬􀀞􀀉􀀔 􀄤􀃽􀄑􀃿􀄮􀎍􀆣􀅬􀈗􀂏􀍖􀉮􀌹􀊑􀂼􀉆􀁠􀇀􀂚􀋿􀁶􀎍􀃺􀂮􀄴􀌹􀁲􀆉􀄐􀁧􀎍􀈜􀇽􀇄
􀌽􀌅􀉜􀉵􀅏􀅂􀂱􀈈􀋖􀌵􀋇􀁼􀃿􀉭􀇳􀇚􀉵􀇄􀆂􀈢􀉵􀄸􀅂􀁠􀈸􀅅􀎍􀇀􀂚􀆔􀌂􀉀􀌻􀇐􀆖􀎗􀀙􀀦􀀫􀀡 􀂘
􀊂􀍸􀎘􀊢􀈲􀆭􀎍􀄮􀁶􀉮􀇃􀆐􀆜􀈗􀈡􀄴􀂜􀂩􀇽􀈜􀅔􀊠􀁴􀁳􀉓􀉮􀂜􀂩􀇻􀍚􀉵􀌒􀋽􀁠
􀄴􀇼􀁲􀋭􀁮􀁳􀎍􀌄􀅆􀈜􀄵􀎑􀉻􀃉􀉵 􀀵􀁇􀀺 􀍔􀄏􀆛􀄥􀂅􀊕􀆎􀄠􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀋇􀁼􀋿􀊀􀁠􀉟􀋑􀎍􀇀
􀂚􀉻􀂵􀁣􀁲􀁩􀈎􀁫􀉈􀂅􀇽􀈜􀈜􀌪􀉵􀆐􀉮􀊕􀆎􀎍􀉫􀆐􀈗􀉿􀄏􀂙􀈄􀋹􀋅􀊂􀍡􀍿􀉵􀈦􀈣􀁠􀂯􀅐􀎍􀁣
􀁲􀇽􀂛􀅄􀃦􀊕􀆎􀁩􀆐􀉤􀄵􀁶􀂁􀇳􀇚􀍴􀋤􀌒􀇽􀂛􀄗􀋑􀉮􀃋􀂖􀈁􀆗􀅞􀉪􀁠􀄴􀌹􀂝􀅠􀋽􀁳􀎍􀇀􀂚􀁽
􀅪􀋻􀍗􀎍􀊕􀆎􀄠􀅐􀈥􀁩􀆻􀃉􀆨 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀇄􀈗􀅄􀈠􀊸􀋡􀇁􀋐􀅔􀊠􀁴􀃎􀈗􀂐􀁸􀎍􀆐􀌐􀂼􀄧􀂉􀂃
􀆸􀁠
􀈸􀅅􀎍􀇀􀂚􀆻􀋯􀈋􀎍􀄴􀇽􀈜􀅂􀉫􀄶􀈐􀁳􀎍􀁩􀆐􀌵􀃛􀉽􀍙􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀊂􀂦􀉵􀋾􀇻􀄤􀍍􀃽􀁠􀌄􀅆
􀆕􀄆􀋐􀍝􀌓􀄵􀋿􀁶􀊂􀂦􀅰􀈎 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀉵􀃲􀊴􀉣􀁠􀌹􀂍􀉭􀂁􀅐 􀀨􀁋􀁆􀀻􀁂􀁁 􀅔􀊠􀁴􀉵 􀀧􀀅􀀍􀀆 􀊂􀂦􀌇
􀍡􀁺􀊪􀉵􀌭􀂛􀌆􀋾􀃓􀊣􀁠􀂥􀂃􀅞􀃻􀈎􀎍􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈜􀌠􀁧􀈓􀁶􀅄􀈠􀎍Unicode 字符􀌹􀁲􀈲􀆭
􀉄􀈗􀋀􀁣􀉵􀅝􀁹􀁠􀇀􀂚􀋿􀁶􀉄􀈗􀉤􀃤􀉵􀉫􀉯􀇎􀅘􀅝􀁹􀁶 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀊂􀂦􀎍􀋑􀁩􀈎 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀅔
􀊰􀋌􀁟􀋅􀊂􀃶􀃁􀎍􀇁􀉬􀋝􀈎􀁣􀂉􀌒􀋽􀉵􀌋􀌒􀁠􀄌􀁣􀈁􀍵􀎍􀇎 􀀭􀀬􀀞􀀉􀀔 􀉵􀋅􀊂􀃶􀃁􀎋􀅔􀋡􀎌􀂫􀁶
􀇽􀈜􀉵􀄽􀈜􀃶􀃁􀂤􀁻􀆣􀈗􀉮􀎍􀈿􀅐􀄴􀋻􀈤􀆅􀉮􀉵􀇽􀈜􀇻􀇢􀈭􀆗􀈗􀂟􀃮􀁠􀀭􀀬􀀞􀀉􀀔 􀉵􀉤􀆰􀍉􀅰􀂁
􀌹􀁲􀊼􀈥􀁠􀅔􀊰􀁟􀋅􀊂􀃶􀃁􀁟􀊂􀂦􀊢 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉻􀃉􀉵􀈝􀌒􀅪􀄴􀊡 􀀑 􀋡􀁳􀋻􀍗􀁠􀅦􀅽􀋅􀊂􀉵􀇽
􀈜􀅔􀊠􀁴􀌺􀋭􀇱􀂫􀅪􀄴􀊡􀀁􀀓􀀁􀋡􀁳􀌀􀌅􀁠
2. 背景
􀀍􀀕􀀔􀀔 􀆊􀎍􀀢􀁂􀁅􀀸􀁃􀀻 􀀜􀀊 􀀚􀀸􀀶􀀾􀀸􀁄 􀄆􀅿􀂁􀊡􀁣􀁲 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇬􀌂􀋦􀈯􀁠􀂖􀉵􀌆􀋾􀅉􀉾􀄵􀆔􀊜􀄴 􀀍􀀒
􀈿􀉤􀅰􀌧􀅇􀋯􀊊􀁣􀁲􀅔􀊠􀉵􀂺􀌆􀁧􀁠􀀍􀀕􀀕􀀍 􀆊􀎍􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈪􀃕􀎋􀄂􀄗􀎗􀋀􀁣􀊂􀎘􀁟􀎗􀁥􀄲
􀊂􀎘􀎌􀉵􀊡􀁣􀁲􀉣􀈜􀄆􀅿􀎍􀂥􀍩􀃦􀊂􀂦􀁶 􀀍􀀒 􀈿􀉤􀍟􀁠􀄴􀍭􀄘􀉵􀃗􀆊􀍘􀎍􀌄􀅆􀊯􀋀􀍔􀅀􀃪􀂁
􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇳􀇚􀎍􀆋􀃜􀇡􀃥􀂁 􀀭􀀛􀀫􀀉􀀎 􀋅􀊂􀁠􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀅯􀃋􀄞􀆘􀆜􀈊􀉵􀈀􀇍􀈝􀎍􀅐 􀀩􀁆 􀈮􀈦
􀎋􀀍􀀕􀀕􀀎􀎌􀁟􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀀁􀀦􀀬􀀁􀀏􀀊􀀍􀎋􀀍􀀕􀀕􀀏􀎌􀁪􀀁􀀢􀀴􀁈􀀴􀎋􀀍􀀕􀀕􀀑􀎌􀁠
􀉟􀋑􀎍􀂏􀂚􀆣􀆬􀄆􀉪􀈾􀁲􀅔􀊠 􀀍􀀒 􀈿􀉤􀆋􀁩􀋗􀉗􀌧 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀍲􀉁􀁠􀀍􀀕􀀕􀀒􀆊􀎍􀁶􀂁􀊆􀂴􀉪􀈗
􀉵􀊯􀋀􀄏􀂙􀇳􀇚􀍴 􀀍􀀒 􀈿􀉤􀉵􀅔􀊠􀎍􀂏􀂚􀄆􀈋􀂁 􀀭􀀬􀀞􀀉􀀍􀀒􀁠􀂥􀈎􀎍􀅘􀆳􀆳􀂻􀊏􀂁􀍁􀇖 􀀍􀀒 􀈿􀉤􀅝
􀍟􀋅􀊂􀉵􀃠􀋰􀁠􀉹􀃧􀎍􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇴􀆝􀂁􀌥􀌵 􀀍􀀌􀀕􀀐􀀐􀀕 􀁲􀅔􀊠􀎍􀃋􀁳􀅈􀊳􀈗 􀀓􀀐􀀑􀀌􀀌 􀁲􀁳􀈆􀍶􀋯
􀆼􀇽􀅔􀁠
名古屋市科学馆。Vadim Zlotnik 摄。
􀆦􀌭􀊻􀆅􀌓􀇎􀎗􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎘􀄤􀎗􀅤􀅔􀊠􀎘􀂫􀁶􀎗􀀭􀀛􀀫􀀉􀀎􀎘􀄤􀎗􀀭􀀬􀀞􀀉􀀍􀀒􀎘􀉵􀂘􀄗􀌋􀁠􀈸􀅅􀎍􀉯
􀂅 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀀙􀀨􀀡 􀁩􀋗􀇧􀄈 􀀭􀀬􀀞􀀉􀀔 􀊛􀅔􀊠􀁴􀎍􀂏􀂚􀆩􀍺􀂮􀉮 UNICODE 􀍼􀅝􀁹􀆅􀍚􀈢􀋅􀌌
􀂘􀊂􀁠􀆦􀌭􀇺􀋔 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀉵 􀀛􀀇􀀇 􀊕􀆎􀄠􀆩􀍺􀉮􀎗􀅤􀅔􀊠􀎘􀈢􀅂􀉫 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎋􀈓􀈗􀉬􀋐􀎍
􀉮 􀀬􀀛􀀠􀀙􀀪􀎍􀈢􀌁􀊕􀆎􀄠􀍇􀌵􀇵􀄉􀋅􀌌􀄫􀌆􀅝􀈢􀍁􀇖􀈎􀄛􀆈􀋘􀅚􀃈􀁩􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎌􀁠􀌹􀈫
􀉵􀉓􀂀􀌁􀌄􀅆􀀁􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀀁􀊕􀆎􀄠􀄯􀆹􀎍􀃥􀆑􀆐􀌐􀆯􀈫􀇆􀋗􀈷􀊆􀅂􀉫􀇽􀈜􀁠
􀁪􀈸􀄖􀈊􀎍􀄴 􀀤􀀼􀁁􀁇􀁊 􀄤 􀀯􀀸􀀵 􀁭􀉰􀎍􀅈􀅢􀎇􀌄􀂁 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀈕􀂭􀋅􀊂􀈎 􀀭􀀬􀀞􀀉􀀔􀁠􀃺􀂮􀅘
􀉵􀁷􀋵􀂟􀉜􀄴􀂅􀈿􀌤􀃋􀂖􀇽􀈜􀈓􀋗􀊥􀊁􀄵􀋯􀊊􀋤􀌒􀄤􀋾􀊦􀈟􀌒􀋽􀎋􀅐 􀀛􀀇􀀇􀁟􀀠􀀬􀀥􀀤􀁟􀀰􀀥􀀤
􀊢􀎌􀎍􀅘􀄴􀄔􀊑􀆅􀉮􀅔􀊠􀍱􀁧􀉵􀋯􀉪􀁽􀍔􀃗􀁻􀁩􀍂􀋠􀂅􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀁠
3. 常识
􀁛 􀄴􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀄤􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀋅􀊂􀍘􀎍􀁣􀁲􀊂􀂦􀈕􀅆􀍔􀋵􀃸􀀁􀀐􀀁􀁲􀅔􀋡􀁠
􀁛 􀀭􀀬􀀞􀀉􀀔 􀁪􀊞􀆎􀈄􀃉􀁠􀀭􀀬􀀞􀀉􀀍􀀒 􀈗􀁰􀊑􀊞􀆎􀎔􀀭􀀬􀀞􀀉􀀍􀀒􀀤􀀝 􀄤 􀀭􀀬􀀞􀀉􀀍􀀒􀀚􀀝􀎋􀃛􀃤􀈎􀅫􀊞􀆎􀄤􀅈􀊞
􀆎􀎌􀁠􀄴􀌹􀍘􀇀􀂚􀋀􀊓􀁶􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀁠
􀁛 􀅤􀅔􀊠􀄴􀈧􀂉􀆉􀄐􀁧􀃸􀀁􀀎􀀁􀁲􀅔􀋡􀎍􀄌􀁣􀂉􀆉􀄐􀁧􀃸􀀁􀀐􀀁􀁲􀅔􀋡􀁠
􀁛 􀅦 􀀭􀀬􀀞􀀉􀀔 􀄤 􀀭􀀬􀀞􀀉􀀏􀀎 􀅔􀊠􀁴􀇥􀆎􀄏􀂙􀆤􀃥􀄤􀅔􀃌􀆎􀉻􀄖􀉵􀊼􀈥􀎍􀀭􀀬􀀞􀀉􀀍􀀒 􀃞􀁩􀋗􀁠􀎋􀌌􀋐
􀉈􀎔􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀊂􀂦􀉵􀉃􀅔􀇥􀆎􀈎􀆓􀉡􀅔􀃌􀆎􀎍􀋑􀁩􀈎􀈀􀃴􀅔􀃌􀆎􀁠􀀭􀁁􀀼􀀻􀀴􀁁 􀇻􀇢􀆏􀄏􀉮􀂅􀅞
􀉪􀇙􀍷􀇥􀆎􀎌
􀁛 􀀭􀀬􀀞􀀉􀀔 􀄏􀂙􀎅􀇷􀋯􀊊􀋤􀇽􀅔􀈽􀄤􀃋􀂖 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀎋􀈾􀅔􀊠􀁣􀁲􀅔􀋡􀎌􀎍􀋑 􀀭􀀬􀀞􀀉􀀍􀀒 􀄍􀅦􀁣􀍓
􀃛􀂈􀉋􀅔􀊠􀍱􀈗􀃣􀎋􀄍􀍲 􀀎 􀅔􀋡􀎍􀀭􀀬􀀞􀀉􀀔 􀍲􀋵 􀀏 􀅔􀋡􀎌􀁠􀌹􀁽􀈎􀁶􀂐􀁸 􀀯􀀸􀀵 􀁭􀉰􀈕􀄪􀅏
􀀭􀀬􀀞􀀉􀀔 􀉵􀃿􀄮􀁠􀋤􀌒􀁿􀃑􀉵 􀀠􀀬􀀥􀀤􀀋􀀰􀀥􀀤 􀈪􀊤􀇫􀈠􀂁􀂜􀂩􀌒􀋽􀉵􀈷􀇽􀇽􀈜􀁠􀋴􀍘􀅭􀌒􀁟􀆁􀂢
􀈢􀌒􀊢􀃋􀂖􀃗􀁲􀆅􀉮􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀃱􀄹􀄴􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀄤􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀍔􀃸􀀁􀀎􀀁􀁲􀅔􀋡􀁠
􀁛 􀀭􀀬􀀞􀀉􀀍􀀒 􀊻􀆅􀋱􀌓􀂙􀁶􀈎􀅝􀍟􀋅􀊂􀎍􀃺􀂮􀈎 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀋜􀆂􀉵􀊕􀆎􀁽􀅐􀈸􀎔􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀎋􀀮􀀼􀁅􀁆􀀴
􀁺􀃧􀎌􀉵􀊵􀇽􀈜􀋅􀌱􀇨􀂛􀁳􀎍􀃸 􀀐 􀁲􀅔􀋡􀉵 􀀭􀀬􀀞􀀉􀀍􀀒 􀅔􀊠􀍲􀋵􀇜􀁰􀁨􀌾􀈭􀍞􀇆􀋗􀃡􀇤􀁠􀄴
􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀀁􀀓􀀁􀁳􀎍􀇨􀃦􀄐􀇎􀈸􀊪􀅔􀊠􀈏􀊊􀆿􀁰􀁲􀂀􀊂􀅔􀎍􀈄􀌅􀍁􀇖􀂐􀁸􀅔􀂨􀁠
􀁛 􀌄􀅆􀍀􀉮􀂅 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀉵􀊡􀁦􀈁􀆏􀁩􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎔􀅘􀂚􀇧􀄈􀊛􀅔􀊠􀁴􀄁􀇻􀎍􀉟􀄘􀂡􀍄􀊽
􀀙􀀦􀀫􀀡 􀀙􀀨􀀡􀁠􀈗􀈊􀉬􀋝􀇽􀂛􀄗􀁽􀈎􀅐􀈸􀁠􀌹􀊑􀍡􀍿􀍇􀆅􀈄􀋻􀎍􀄮􀁶􀁣􀁲􀅔􀊠􀁴􀄏􀋗􀈄􀉆􀄴􀂜􀂩
􀀙􀀦􀀫􀀡 􀂘􀊂􀍸􀅚􀇼􀋯􀊊􀎋􀅐􀈥􀅘􀎐􀄝 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀄔􀁲􀃱􀄹􀉵􀅈􀈠􀉞􀎌􀁠􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀊕􀆎􀄠􀁣􀋟
􀂠􀄀􀈩􀌏􀌹􀁲􀇽􀂛􀎋􀅐􀈥􀅽􀊻􀅕􀄴􀎌􀉵 􀀔􀀊􀀏 􀀜􀀧􀀫 􀊁􀇽􀂛􀄗􀈢􀂡􀍄􀊽􀌹􀈫􀉵􀆏􀁠􀅐􀈥􀋵􀃟􀆔􀁣
􀁲􀁩􀅕􀄴􀉵􀇽􀂛􀎍􀇁􀋐 􀀔􀀊􀀏 􀌩􀆡􀍟􀆒􀌥􀌵􀂁 MAX_PATH 􀎍􀄂􀇁􀋐􀇱􀂫􀊯􀋀􀌆􀅝􀍘􀊍􀉮􀂁􀊁􀇽
􀂛􀄗􀉵􀉭􀆿􀎍􀍒􀅰􀈄􀉆􀅞􀉪􀂁􀁠
􀁛 􀄴 􀀛􀀇􀀇 􀁳􀎍 std::exception::what() 􀄍􀋗􀉮 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀈢􀌷􀄭 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠 localeconv
􀄍􀈗􀂮􀉮􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀇆􀋗􀇳􀇚􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠
􀁛 􀀭􀀬􀀞􀀉􀀍􀀒 􀄴􀂒􀅉􀂓􀉟􀉍􀋭􀎍􀃺􀂮􀈎􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁭􀉰􀂙􀅅􀁠 􀀩􀁆􀁟􀀢􀀴􀁈􀀴􀁟􀀛􀀃􀁟􀀨􀁋􀁆􀀻􀁂􀁁􀎋􀀛􀀨􀁋􀁆􀀻􀁂􀁁 􀄁􀋏􀅞􀉪 􀀏􀀊􀀏 􀉣􀈜􀁺􀃧􀎍􀋶􀁨􀇽􀎌􀂙􀄃 􀀡􀀛􀀭􀎍􀃎􀍓􀍔􀂮􀉮 􀀭􀀬􀀞􀀉􀀍􀀒 􀈢􀋯
􀊊􀅔􀊠􀁴􀁠
4. 不透明数据参数
􀇀􀂚􀃐􀌙􀇽􀂛􀅄􀃦􀊕􀆎􀁠􀄴 􀀭􀀦􀀡􀀰 􀁭􀉰􀍘􀎍􀃗􀁻􀇄􀈗􀊛􀅔􀊠􀁴􀍔􀎇􀋿􀈎 􀀭􀀬􀀞􀀉􀀔􀁠􀈷􀄮􀅐􀈸􀎍
􀇽􀂛􀅄􀃦􀊕􀆎􀉵􀂫􀋐􀆋􀁩􀍲􀋵􀄴􀆼 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠􀄮􀁶􀄁􀇻􀈎􀂫􀁶􀁩􀍃􀈋􀇻􀇢􀎍􀃺 􀀶􀁂􀁂􀀾􀀼􀀸􀎍􀇄
􀁔􀁘􀁗􀁕􀁖􀁑􀁙􀀁नमस्ते שָׁלוֹם
􀂬􀉽􀃥􀂁􀃗􀁲字符􀎖
􀂙􀄍􀋵􀉮 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀁴􀂫􀁶􀇽􀂛􀄗􀄁􀇻􀉎􀌍􀆿􀃩􀎍􀊕􀆎􀅰􀋜􀃬􀇳􀇚􀂁􀂜􀂩􀌒􀋽􀉵􀇽􀂛􀄗􀁠􀇽
􀂛􀅄􀃦􀊕􀆎􀉵􀂘􀊂􀁩􀍲􀋵􀂼任何􀇵􀃬􀅰􀋗􀇳􀇚􀅅􀄲􀌒􀋽􀁠 fopen() 􀃙􀇻􀅚􀋋􀇳􀇚
􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎍 argv 􀂌􀉟􀁠
􀉪􀄴􀌁􀇀􀂚􀉽􀉽 􀀥􀀼􀀶􀁄􀁂􀁅􀁂􀀹􀁆 􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀎍􀄽􀂅 􀀭􀀬􀀞􀀉􀀍􀀒 􀈦􀈣􀎍􀈎􀆯􀁸􀂼􀉵􀁠􀂮􀇽􀂛􀇘􀌝􀊕􀆎
􀇳􀇚􀅆􀁲 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀃱􀄹􀉵􀅈􀈠􀉞􀎋􀅆􀌒􀊑􀉓􀄕􀎌􀍲􀋵􀁣􀂉􀅎􀇍􀎎􀅺􀁠􀎂􀃃􀎍􀆐􀉮􀊕􀆎􀆩􀍺􀄴
􀋅􀌌􀈊􀇇􀆕 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇳􀇚􀁠􀌹􀈫􀉵􀌎􀎍􀊕􀆎􀁩􀋗􀈗 􀀛 􀌒􀋽􀈪􀃕􀆞􀄁􀉵 main() 􀃙􀇻􀁠􀅘􀆤
􀋗􀇧􀄈 􀀭􀀬􀀞􀀉􀀍􀀒 􀋅􀊂􀉵 argv 􀁠􀋵􀇎􀁣􀁲􀈜􀁶􀊛􀅔􀊠􀁴􀃑􀉵 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀊕􀆎􀇵􀍉􀆿􀇳􀇚
􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎍􀆕􀄆􀋐􀍲􀋵􀉒􀆒􀍙􀈣􀎍􀉠􀍻􀅏􀈾􀁣􀁲􀅔􀊠􀁴􀄉􀍚􀁠
􀀥􀀫􀀮􀀛 􀋜􀆂􀉵􀈪􀃕􀆏􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇳􀇚􀆤􀆣􀊮􀊭􀁠􀅘􀇎􀊛􀅔􀊠􀁴􀄁􀇻􀉺􀇧􀂡􀍄􀃥􀇱􀂫􀊯􀋀􀉵
􀀙􀀦􀀫􀀡 􀀙􀀨􀀡􀎍􀉄􀃨􀉆􀍙􀌯􀁠􀇵􀄉 std::locale 􀁽􀉄􀉮􀁠􀉄􀉆􀉮 􀀛􀀇􀀇 􀉵􀈪􀃕􀉤􀆰􀈢􀇇􀆕
􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀇽􀂛􀄗􀉵􀇽􀂛􀁠􀇇􀆕􀇽􀂛􀉵􀈪􀃕􀈁􀉆􀈎􀎔
std::fstream fout("abc.txt");
􀋻􀃓􀌹􀁲􀍡􀍿􀉵􀈷􀊆􀈁􀉆􀈎􀉮􀆦􀌭􀋜􀅼􀄆􀈋􀉵􀋮􀇹􀈁􀉆􀈢􀇧􀄈􀅤􀅔􀊠􀁴􀄁􀇻􀎍􀋑􀌹􀈎􀁣􀁲􀍴
􀈪􀃕􀇊􀅶􀁠
􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁳􀎍 HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ACP 􀉈􀃏
􀋯􀍞􀄏􀂙􀃀􀌄 􀀙􀀦􀀫􀀡 􀀙􀀨􀀡 􀇳􀇚􀍴 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀎍􀂥􀈎􀄍􀋗􀍁􀇖􀁣􀁲􀄱􀅝􀉵 􀀙􀀦􀀫􀀡 􀂘􀊂􀍸􀁠􀇁
􀌄 􀀒􀀑􀀌􀀌􀀍 􀂹􀄏􀂙􀋻􀃓 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀉵 􀀶􀁂􀁂􀀾􀀼􀀸 􀍡􀍿􀎍􀉟􀋑􀆦􀌭􀉄􀅞􀉪􀅘􀁠􀅐􀈥􀆦􀌭􀅞􀉪􀂁􀌹􀁲
􀀙􀀛􀀨 􀂹􀎍􀅰􀋗􀅇􀄴􀀁􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀀁􀆉􀄐􀁧􀂲􀌺􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀉵􀆍􀉇􀇧􀄈􀁠
􀅦􀂅 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀊕􀆎􀄠􀄤􀌨􀆉􀄐􀆏􀃼􀄩􀎍􀇀􀂚􀅪􀄴􀎗􀅐􀂩􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁧􀅂􀉫􀇽􀈜􀎘􀁣􀋡􀁳
􀌀􀌅􀇀􀂚􀇬􀃘􀉵􀅂􀉫􀇽􀈜􀅔􀊠􀁴􀄤􀍙􀈣􀊕􀆎􀁟􀅀􀆚􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀇳􀇚􀉵􀃨􀉆􀁠
5. 字形、字素群和其他 Unicode 概念
􀌹􀍘􀈎􀈬􀇢 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈪􀃕􀎍􀅦􀅔􀊠􀁟􀊂􀂦􀁟􀋅􀊂􀃶􀃁􀄤􀅔􀊰􀋌􀁺􀅝􀁹􀉵􀇯􀆝􀁠􀆔􀌂􀄁􀋏
􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀈪􀃕􀉻􀃉􀊝􀋡􀉵􀌑􀊸􀌔􀈋􀁠
码位 (Code point)
􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀋅􀊂􀊙􀍢􀉵􀂜􀂩􀇻􀂹􀁠􀀲􀁍􀀏􀀊􀀐􀀈 􀀜􀀍􀀌􀀳 􀂯􀅐􀎔
􀀭􀀇􀀏􀀎􀀐􀀏􀀞􀁠
编码单元 (Code unit)
􀄏􀂙􀋯􀊊􀁣􀈼􀅽􀋅􀊂􀇽􀈜􀉵􀈕􀅫􀈿􀉤􀊷􀄕􀁠􀀲􀁍􀀏􀀊􀀕􀀈 􀀜􀀓􀀓􀀳 􀂯􀅐􀎍􀀭􀀬􀀞􀀉􀀔􀁟􀀭􀀬􀀞􀀉􀀍􀀒 􀄤
􀀭􀀬􀀞􀀉􀀏􀀎 􀃛􀃤􀂮􀉮 􀀔 􀈿􀉤􀁟􀀍􀀒 􀈿􀉤􀄤 􀀏􀀎 􀈿􀉤􀋅􀊂􀃶􀃁􀁠􀁧􀌽􀊂􀂦􀄏􀂙􀋅􀊂􀆿􀄬􀁲 􀀭􀀬􀀞􀀉􀀔
􀋅􀊂􀃶􀃁􀎗 f0 b2 90 bf 􀎘􀎍􀁰􀁲 􀀭􀀬􀀞􀀉􀀍􀀒 􀋅􀊂􀃶􀃁􀎗 d889 dc3f 􀎘􀎍􀁣􀁲 􀀭􀀬􀀞􀀉􀀏􀀎 􀋅
􀊂􀃶􀃁􀎗 0003243f 􀎘􀁠􀌕􀉈􀆼􀎍􀌹􀂑􀂑􀈎一组比特􀆎􀃝􀎕􀅘􀂚􀅕􀂾􀄴􀍵􀄙􀅔􀋡􀉵􀅒􀂨
􀁧􀉵􀈁􀆗􀄇􀃓􀂅􀉤􀅝􀋅􀊂􀉵􀊞􀆎􀁠􀆜􀅕􀂾􀁧􀌽 􀀭􀀬􀀞􀀉􀀍􀀒 􀊂􀂦􀈊􀎍􀀭􀀬􀀞􀀉􀀍􀀒􀀚􀀝 􀂠􀌬􀇡􀁶
􀎗 d8 89 dc 3f 􀎘􀎍􀀭􀀬􀀞􀀉􀀍􀀒􀀤􀀝􀀁􀂠􀌬􀇡􀁶􀎗 89 d8 3f dc 􀎘􀁠
抽象字符 (Abstract character)
􀁣􀁲􀉮􀂅􀊷􀊹􀁟􀇨􀃦􀇁􀋯􀊊􀇽􀅔􀇻􀇢􀉵􀂵􀆲􀃶􀃁􀁠􀀲􀁍􀀏􀀊􀀐􀀈 􀀜􀀓􀀳 􀌐􀈪􀃕􀄴 􀀏􀀊􀀍 􀋡􀌺􀁣􀈹􀌔
􀍎􀎔
􀅦􀂅 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈪􀃕􀎍􀀲􀀊􀀊􀀊􀀳 􀇴􀆝􀈜􀌪􀈎􀆕􀇶􀉵􀁠􀄮􀁶 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈎􀁣􀊑􀍇􀉮􀋅􀊂􀎍
􀂜􀂩􀇒􀌜􀅔􀊠􀄍􀋵􀋗􀋱􀋅􀊂􀎍􀅰􀄏􀋗􀆿􀁶􀋅􀊂􀉵􀂸􀍁􀎍􀈄􀌅􀌹􀁲􀅔􀊠􀈎􀄛􀅽
􀊀􀁠
􀌹􀁲􀅝􀁹􀉵􀊆􀆣􀇒􀌜􀁠􀄍􀋵􀈎􀂏􀋗􀆻􀃥􀉵􀂜􀂩􀅔􀊠􀎍􀅰是􀁣􀁲􀇒􀌜􀅔􀊠􀁠􀂯􀅐􀎍 精灵
语 tengwar 字母 ungwe 􀈎􀁣􀁲􀇒􀌜􀉵􀅔􀊠􀎍􀋬􀉟􀅘􀅮􀁩􀋗􀉮􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀋯􀊊􀁠
已编码字符 (Encoded character, Coded character)
􀊂􀂦􀄤􀇒􀌜􀅔􀊠􀁺􀍢􀉵􀈍􀅩􀁠􀀲􀁍􀀏􀀊􀀐􀀈 􀀜􀀍􀀍􀀳 􀂯􀅐􀎍􀀭􀀇􀀍􀀞􀀐􀀎􀀔 􀈎􀁣􀁲􀂘􀋯􀇒􀌜􀅔􀊠 🐨 考拉􀉵
􀅽􀋅􀊂􀅔􀊠􀁠
􀌹􀊑􀈍􀅩􀈎􀈅􀁩􀈎􀄄􀅩􀎍􀁽􀁩􀈎􀃶􀅩􀎍􀈓􀁩􀈎􀉗􀅩􀎔
􀁛 􀂘􀉫􀅔􀊠􀎋􀁅􀁇􀁄􀁄􀁂􀀺􀀴􀁆􀀸􀎌􀎍􀍴􀅔􀊠􀎋􀁁􀁂􀁁􀀶􀀻􀀴􀁄􀀴􀀶􀁆􀀸􀁄􀎌􀄤􀈛􀃛􀍕􀉵􀊂􀂦􀅚􀃈􀁩􀅦􀆐􀇒􀌜􀅔
􀊠􀁠
􀁛 􀁣􀂉􀇒􀌜􀅔􀊠􀄏􀂙􀉯􀁩􀄖􀉵􀊂􀂦􀌺􀋭􀋅􀊂􀎕􀀭􀀇􀀌􀀏􀀙􀀕 希腊大写字母omega 􀄤 􀀭􀀇􀀎􀀍􀀎􀀒 欧
姆符号􀍔􀅦􀆐􀂅􀄖􀁣􀁲􀇒􀌜􀅔􀊠􀎗􀁒􀎘􀎍必须同等对待􀁠
􀁛 􀁣􀂉􀇒􀌜􀅔􀊠􀈄􀉆􀉮􀃶􀁲􀊂􀂦􀌺􀋭􀋅􀊂􀎍􀋵􀉮􀅽􀋅􀊂􀅔􀊠􀉵序列􀇆􀋗􀋯􀊊􀅘􀂚􀁠􀂯􀅐􀎍
􀋯􀊊􀇒􀌜􀅔􀊠 􀁚􀁑 带锐音符的西里尔小写字母yu 􀉵􀄨􀁣􀈁􀉆􀈎􀂮􀉮 􀀭􀀇􀀌􀀐􀀐􀀝 西里尔小写
字母 yu 􀄤􀀁􀀭􀀇􀀌􀀏􀀌􀀍 组合锐音符􀌹􀁲􀆎􀃝􀁠
􀈸􀅅􀎍􀁣􀂉􀇒􀌜􀅔􀊠􀁩􀂑􀈗􀃶􀊂􀂦􀋯􀊊􀈁􀉆􀎍还有􀅆􀊂􀂦􀋯􀊊􀈁􀉆􀁠􀇒􀌜􀅔􀊠 ǵ 􀄏􀂙􀉮
􀃶􀁣􀊂􀂦 􀀭􀀇􀀌􀀍􀀞􀀑 带锐音符的拉丁小写字母g 􀋅􀊂􀎍􀇁􀋐􀉮 􀀗􀀭􀀇􀀌􀀌􀀒􀀓 拉丁小写字母g􀀈
􀀭􀀇􀀌􀀏􀀌􀀍 组合锐音符􀀘􀀁􀌹􀁲􀆎􀃝􀁠
用户观感字符 (User-perceived character)
􀂜􀂩􀈕􀊺􀉮􀇃􀇄􀋿􀁶􀉵􀅔􀊠􀁠􀌹􀁲􀈲􀆭􀁪􀌒􀋽􀈗􀃉􀁠􀂯􀅐􀎍􀎗􀀶􀀻􀎘􀄴􀋤􀌒􀄤􀇔􀁤􀇽􀁳􀈎
􀁰􀁲􀅔􀈽􀎍􀋑􀄴􀇣􀃅􀌒􀄤􀇿􀉊􀂞􀃅􀌒􀁳􀃞􀈎􀁣􀁲􀅔􀈽􀁠
字素群 (Grapheme cluster)
􀎗􀆐􀌐􀇶􀄴􀁣􀌤􀎘􀉵􀅽􀋅􀊂􀉵􀅔􀊠􀆎􀃝􀁠􀀲􀁍􀀎􀀊􀀍􀀍􀀳 􀅔􀊰􀋌􀄏􀂙􀌶􀂤􀄵􀉽􀂫􀌒􀋽􀁳􀊜􀉵􀉮􀇃
􀋷􀆽􀅔􀊠􀁠􀂯􀅐􀅘􀂚􀄏􀍀􀉮􀂅􀃄􀈪􀊔􀃬􀄤􀍁􀇖􀁠
字模 (Glyph)
􀁣􀊑􀅔􀂨􀁳􀉵􀃶􀁲􀉤􀅝􀆞􀉦􀁠􀅔􀂨􀈎􀅔􀈳􀉵􀍱􀄕􀎍􀉯􀅔􀂨􀌆􀋾􀆀􀌆􀋾􀁠􀇽􀈜􀆿􀄻􀄤􀉔􀈨
􀆘􀇲􀌞􀌟􀅪􀊂􀂦􀆎􀃝􀌬􀇡􀆿􀁶􀉤􀅝􀅔􀂨􀁳􀅔􀈳􀉵􀆎􀃝􀁠􀌹􀁲􀌬􀇡􀉵􀋸􀃞􀄏􀋗􀆣􀅄􀈠􀁬􀄇
􀃓􀂅􀌒􀋽􀉩􀄿􀌆􀅝􀁠􀌹􀁩􀄴􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀈪􀃕􀋥􀄰􀁺􀃎􀁠
􀎗􀅔􀊠􀎘􀄏􀂙􀂘􀋯􀂙􀁧􀂜􀂩􀈲􀆭􀁠􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈪􀃕􀉮􀎗􀅔􀊠􀎘􀂫􀁶􀎗已编码字符􀎘􀉵􀄖􀁹􀌋􀁠
􀀲􀁍􀀏􀀊􀀐􀀳 􀋅􀊕􀌒􀋽􀇁􀊕􀆎􀆏􀇽􀈰􀁳􀉵􀎗􀅔􀊠􀎘􀍇􀆅􀈎􀇛􀁣􀁲􀋅􀊂􀃶􀃁􀁠􀅐􀈥􀍡􀈕􀊺􀉮􀇃􀁣􀁲􀅔
􀊠􀁴􀁳􀅔􀊠 􀉵􀇻􀍚􀎍􀂖􀂠􀇻􀎗􀉮􀇃􀋷􀆽􀅔􀊠􀎘􀁠􀈬􀇢􀁣􀁲􀊕􀆎􀄠􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀂁􀋻􀊕􀆒􀉵􀁩
􀄖􀎍􀂖􀄏􀋗􀋿􀁶􀎗􀅔􀊠􀎘􀈎􀋅􀊂􀃶􀃁􀁟􀊂􀂦􀇁􀋐􀅔􀊰􀋌􀁠􀂯􀅐􀌹􀈎 􀀬􀁉􀀼􀁆􀁆􀀸􀁄 􀋾􀊦􀅔􀊠􀉵􀈁
􀆗􀁠􀄴􀇀􀂚􀉽􀈢􀎍􀁣􀁲􀅔􀊠􀁴􀍟􀆒􀃙􀇻􀅦􀅔􀊠􀁴􀎗🐨􀎘􀁩􀁣􀅝􀋵􀌷􀄭􀀁􀀍􀀁􀇆􀊦􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀃍􀅣􀁠
6. 亚洲语言文本：UTF-8 与 UTF-16
􀄮􀈸􀎍􀄴 􀀭􀀬􀀞􀀉􀀔 􀄤 􀀭􀀬􀀞􀀉􀀍􀀒 􀁳􀅈􀅆􀇻 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀊂􀂦􀍔􀃸􀉻􀄖􀉵􀅔􀋡􀇻􀁠􀎐􀇗􀂳􀌒􀁟􀆁􀂢􀈢
􀌒􀁟􀆁􀋚􀌒􀎍􀄤􀇄􀈗􀍴 􀀚􀀥􀀨 􀊂􀂦􀄴􀁰􀊑􀋅􀊂􀁳􀍔􀃸􀂁 􀀎 􀇁 􀀐 􀅔􀋡􀁠􀀭􀀬􀀞􀀉􀀍􀀒 􀋅􀊂􀉵􀇔􀁤􀅔
􀈽􀁟􀁣􀂉􀈪􀉜􀊠􀄒􀄤 􀀙􀀫􀀛􀀡􀀡 􀊂􀁳􀉵􀃋􀂖􀅔􀊠􀃸􀂁􀈓􀅆􀊙􀍢􀎍􀋑 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀉵􀁣􀍓􀃛􀂈􀉋􀅔􀊠
􀃞􀃸􀉮􀂁􀈓􀅆􀊙􀍢􀁠􀂈􀉋􀊕􀆎􀄠􀍯􀍎􀁩􀋗􀌬􀂾 􀀭􀀬􀀞􀀉􀀍􀀒􀎍􀂔􀋑􀂮􀈾􀁲􀅔􀉫􀌅􀁧􀋡􀉼 􀀑􀀌􀀄 􀉵􀃎
􀅕􀄚􀎖
􀂃􀅞􀁩􀈎􀌹􀈫􀁠􀂑􀈗􀂏􀅹􀈣􀍉􀉵􀎍􀁬􀄍􀄝􀈗 􀀭􀀇􀀌􀀔􀀌􀀌 􀃥 􀀭􀀇􀀞􀀞􀀞􀀞 􀋥􀄰􀃎􀉵􀇽􀈜􀊊􀂯􀎍􀇆􀋗􀋡
􀉼􀁣􀃳􀃎􀅕􀁠􀉟􀋑􀋾􀊦􀈟􀁺􀍢􀇽􀈜􀇧􀄊􀉵􀂮􀉮􀌻􀌥􀃋􀂖􀇽􀈜􀇻􀇢􀉵􀉮􀍅􀁠􀌹􀎐􀇗 􀀰􀀥􀀤􀁟􀀠􀀬􀀬􀀨􀁟􀇽􀂛􀌩􀆡􀄤􀍕􀋊􀇽􀂛􀎓􀅘􀂚􀃗􀁻􀍔􀂑􀂮􀉮􀂁 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀁠􀋑􀁬􀂃􀅞􀁧􀎍􀀭􀀬􀀞􀀉􀀔 􀄴
􀄔􀁲􀂈􀉋􀄲􀅢􀆍􀁶􀂮􀉮􀁠
􀄴􀁫􀍠􀂾􀅕􀁳􀇽􀁿􀊩􀉵􀄶􀄕􀎍􀀭􀀬􀀞􀀉􀀍􀀒 􀄏􀋗􀌸􀈎􀁣􀊑􀄕􀉫􀉵􀂟􀎑􀁠􀁣􀈇􀂔􀌹􀈫􀉵􀇻􀇢􀆏􀄇􀃘
􀇽􀈜􀎍􀅰􀆐􀌐􀅪􀃋􀌬􀁶􀄤􀁭􀉰􀇧􀌫􀉵􀈪􀃕􀋅􀊂􀁠􀈄􀌅􀍖􀉮􀄧􀊑􀈁􀈯􀎍􀄴􀅕􀂾􀆿􀈜􀌰􀎅􀈊􀎍􀂏
􀂚􀆠􀆠􀂠􀂮􀉮􀈄􀇠􀃾􀋆􀁠􀌹􀈫􀉵􀌎􀎍􀀭􀀬􀀞􀀉􀀔 􀄤 􀀭􀀬􀀞􀀉􀀍􀀒 􀃸􀉮􀉵􀂾􀅕􀊙􀍢􀅰􀅻􀁩􀅆􀂁􀁠􀈸􀅅􀎍
􀎗􀄴􀁧􀌽􀌒􀋽􀁳􀎍􀁣􀁲􀅔􀊠􀈿􀁣􀁲􀇔􀁤􀅔􀊠􀄝􀈗􀉵􀂵􀆲􀍚􀈓􀅈􀎍􀄮􀈸􀃋􀃸􀉮􀈓􀅆􀊙􀍢􀈎􀄕􀆸
􀄕􀉫􀉵􀁠􀎘􀎋􀀬􀁄􀁂􀁁􀀼􀀶􀎍􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀈎􀈗􀅡􀉵􀎌
􀌹􀈎􀁣􀁲􀊥􀃶􀅞􀎄􀉵􀊼􀈥􀁠􀊡􀁣􀃝􀈎􀈧􀋈􀍸􀎋􀁡􀈆􀈜􀁢􀎍􀀎􀀌􀀍􀀎 􀆊 􀀍 􀈖 􀀍 􀈆􀄇􀋜􀈆􀌒􀋃􀄽􀉴
􀊒􀎌􀉵 􀀠􀀬􀀥􀀤 􀉖􀂘􀊂􀃸􀉮􀉵􀊙􀍢􀁠􀊡􀂄􀃝􀈎􀉻􀆐􀃡􀍪􀈪􀌃􀉵􀊵􀇽􀈜􀎍􀃺􀎗􀃈􀍁􀁟􀅄􀃦􀁟􀊫􀌡
􀃥􀊵􀇽􀈜􀇽􀂛􀎘􀉵􀊼􀈥􀁠
HTML 源代码（与 UTF-8 比较） 纯文本（与 UTF-8 比较）
UTF-8 􀀓􀀒􀀓􀀁􀀣􀀚􀀁􀀅􀀌􀀄􀀆 􀀎􀀎􀀎􀀁􀀣􀀚􀀁􀀅􀀌􀀄􀀆
UTF-16 􀀍 􀀍􀀔􀀒􀀁􀀣􀀚􀀁􀀅􀀇􀀑􀀑􀀄􀀆 􀀍􀀓􀀒􀀁􀀣􀀚􀀁􀀅􀁝􀀎􀀍􀀄􀀆
UTF-8，ZIP 压缩􀀍􀀓􀀕􀀁􀀣􀀚􀀁􀀅􀁝􀀓􀀓􀀄􀀆 􀀔􀀏􀀁􀀣􀀚􀀁􀀅􀁝􀀒􀀏􀀄􀀆
UTF-16LE，ZIP 压缩􀀍􀀕􀀎􀀁􀀣􀀚􀀁􀀅􀁝􀀓􀀑􀀄􀀆 􀀓􀀒􀀁􀀣􀀚􀀁􀀅􀁝􀀒􀀒􀀄􀀆
UTF-16BE，ZIP 压缩􀀍􀀕􀀐􀀁􀀣􀀚􀀁􀀅􀁝􀀓􀀑􀀄􀀆 􀀓􀀓􀀁􀀣􀀚􀀁􀀅􀁝􀀒􀀑􀀄􀀆
􀄏􀂙􀉽􀃘􀎍􀀭􀀬􀀞􀀉􀀍􀀒 􀅦􀂅􀅞􀍦􀇻􀇢􀈿 􀀭􀀬􀀞􀀉􀀔 􀅆􀃸􀉮􀊳 􀀑􀀌􀎊 􀉵􀊙􀍢􀎍􀅦􀂈􀉋􀌒􀋽􀊵􀇽􀈜􀁽􀂑􀂑
􀋡􀉼􀂁􀀁􀀎􀀌􀀄􀎍􀆋􀆣􀍯􀌥􀌦􀍇􀉮􀃾􀋆􀊦􀉆􀁠
7. 已编码字符串中的文本操作
􀉍􀋭􀉵􀄽􀂅􀇽􀈜􀉵􀇻􀇢􀈭􀆗􀎋􀂯􀅐 􀀛􀀫􀀮􀁟􀀰􀀥􀀤􀁟􀀠􀀬􀀥􀀤􀁟􀀢􀀫􀀧􀀦􀁟􀀪􀀬􀀞 􀄤􀋾􀊦􀈟􀊕􀆎􀉖􀂘
􀊂􀎌􀆅􀆅􀎐􀄝 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀂫􀁶􀊼􀈣􀇨􀃦􀃁􀊰􀎍􀆋􀁬􀄏􀂙􀎐􀄝 􀀙􀀫􀀛􀀡􀀡 􀄤􀍴 􀀙􀀫􀀛􀀡􀀡 􀉵􀇽􀈜􀇻􀇢
􀅔􀊠􀁴􀁠􀉮􀄏􀄉􀍟􀋅􀊂􀈢􀇱􀂫􀄏􀋗􀉽􀌤􀈢􀆣􀄯􀍯􀎍􀄮􀁶􀃋􀁳􀋁􀇌􀋜 􀀙􀀫􀀛􀀡􀀡 􀉵􀊂􀂦􀈿􀃋􀂖􀊂􀂦
􀊁􀎍􀋑􀅔􀊠􀁴􀁳􀅽􀋅􀊂􀅔􀊠􀍢􀉵􀉰􀍩􀁩􀈎􀁣􀈙􀃺􀊀􀁠􀌹􀇩􀃬􀂁􀌭􀂛􀈦􀈣􀍁􀇖 􀀭􀀛􀀫􀀉􀀐 􀅝􀍟􀋅􀊂
􀎋􀅐 􀀨􀁋􀁆􀀻􀁂􀁁􀀁􀁈􀀏􀀊􀀏􀎌􀁠􀃋􀅞􀎍􀌹􀈅􀁩􀆩􀋵􀁽􀁩􀋗􀋻􀃓􀇀􀂚􀊀􀍎􀉵􀂜􀂩􀅞􀍦􀍡􀍿􀁠
􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀄴􀌆􀋾􀁧􀂴􀌈􀂁􀁣􀁲 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀇁􀅓􀅔􀊠􀁴􀉀􀌻􀁩􀂠􀃰􀍕􀃥􀁣􀁲􀅆􀅔􀋡􀋅􀊂􀉵􀅔
􀊠􀁳􀍢􀁠􀌹􀄴 􀀭􀀬􀀞􀀉􀀍􀀒 􀁳􀁽􀍀􀉮􀁠􀌹􀁰􀁲􀋅􀊂􀁳􀎍􀅆􀅔􀋡􀋅􀊂􀉵􀊂􀂦􀉵􀋅􀊂􀃶􀃁􀂠􀅪 􀀥􀀫􀀚 􀌆
􀁶􀀁􀀍􀁠
􀈿􀅐􀋵􀇋 􀀠􀀬􀀥􀀤 􀈪􀊤􀉵􀆕􀅑􀌃􀄒􀎗􀀗􀎘􀎍􀇁􀄴 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀉵 􀀫􀀩􀀤 􀌒􀄋􀁳􀇋􀃥􀃶􀆘􀄒􀎋􀎒􀎌􀈢
􀍼􀍤 􀀫􀀩􀀤 􀉈􀃇􀎍􀌹􀄤􀄴􀃈􀋤􀇽 􀀙􀀫􀀛􀀡􀀡 􀇽􀈜􀅔􀊠􀁴􀁳􀂼􀉆􀁣􀈫􀁠􀀭􀀬􀀞􀀉􀀔 􀉵􀋅􀊂􀈁􀆗􀂴􀌈􀂁􀌹
􀋭􀆤􀍇􀁠􀎏􀂨􀈢􀌔􀎍􀈾􀁣􀁲􀍴 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀄴 􀀭􀀬􀀞􀀉􀀔 􀁳􀂠􀋅􀊂􀁶􀁣􀊯􀃝􀅔􀋡􀎍􀈾􀁲􀅔􀋡􀉵􀂹􀍔
􀅈􀂅 􀀍􀀎􀀓􀁠􀁣􀁲􀈞􀊰􀉵􀊦􀉆􀅚􀃈􀉄􀈗􀈟􀂠􀁪􀁺􀃒􀊚􀎓􀊥􀃶􀁟􀆬􀍈􀁟􀂟􀍰􀎍􀉄􀈗􀆩􀋵􀃉􀆨􀋅
􀊂􀉵􀅔􀊠􀌴􀉰􀁠
􀈸􀅅􀎍􀂬􀌸􀄏􀂙􀂿􀄴􀊥􀃶􀉵􀅔􀋡􀇻􀊷􀁳􀁣􀈫􀎍􀉺􀇧􀄴􀁣􀁲 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀉵􀅔􀊠􀁴􀁳􀇭􀊱 􀀭􀀬􀀞􀀉􀀔
􀋅􀊂􀉵􀍴 􀀙􀀫􀀛􀀡􀀡 􀉵􀅓􀅔􀊠􀁴􀎓􀈄􀍲􀃉􀉈􀊂􀂦􀌴􀉰􀁠􀌹􀋵􀆛􀃩􀂅 􀀭􀀬􀀞􀀉􀀔 􀉵􀄌􀁣􀁲􀌆􀋾􀉤􀉜
􀎓􀁣􀁲􀊂􀂦􀋅􀊂􀉵􀌤􀅑􀅔􀋡􀉀􀌻􀁩􀂠􀁪􀃋􀂖􀊂􀂦􀉵􀅲􀍭􀅔􀋡􀉻􀄖􀁠
8. 有关字符计数的更多谣言
􀃧􀍵􀇀􀂚􀌔􀌵􀎍􀈗􀁣􀊑􀉍􀋭􀉵􀋷􀉜􀋿􀁶􀋾􀇻􀁟􀇓􀃛􀁟􀊱􀆘􀇁􀂙􀃋􀂖􀈁􀆗􀍍􀃽 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀅔􀊠􀁴
􀁳􀉵􀊂􀂦􀆐􀌐􀊦􀈎􀁣􀊑􀍾􀊲􀄤􀍙􀋵􀉵􀇱􀂫􀁠􀄴􀈜􀋡􀁳􀎍􀇀􀂚􀅪􀈓􀌑􀊸􀄵􀇦􀌀􀌹􀉜􀁠
8.1. 1. 可以在常数时间内对 UTF-16 中的字符计数。
􀌹􀈎􀍒􀂉􀋿􀁶 􀀭􀀬􀀞􀀉􀀍􀀒 􀈎􀅝􀍟􀋅􀊂􀉵􀂏􀉵􀁣􀁲􀆅􀋶􀍝􀌓􀁠􀌹􀈎􀍝􀉵􀁠􀅞􀍦􀁧 􀀭􀀬􀀞􀀉􀀍􀀒 􀈎􀄏􀄉
􀍟􀆒􀋅􀊂􀁠􀅐􀈥􀂬􀄛􀋿􀍴􀀁􀀚􀀥􀀨􀀁􀅔􀊠􀉵􀅕􀄴􀎍􀌕􀄁􀍣􀌹􀃞􀆅􀋶􀍡􀍿􀁠
8.2. 2. 可以在常数时间内对 UTF-32 中的字符计数。
􀌹􀄤􀌓􀉮􀎗􀅔􀊠􀎘􀉵􀅝􀁹􀈗􀃉􀁠􀇀􀂚􀊆􀅞􀄏􀂙􀄴􀆅􀇻􀈊􀍢􀃎􀅦 􀀭􀀬􀀞􀀉􀀏􀀎 􀁳􀉵􀋅􀊂􀃶􀃁􀄤􀊂􀂦
􀋾􀇻􀁠􀉟􀋑􀎍􀊂􀂦􀆋􀁩􀅦􀆐􀂅􀉮􀇃􀋷􀆽􀅔􀊠􀁠􀃺􀂮􀈎􀄴 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀆞􀆗􀎑􀉵􀋸􀅝􀁳􀎍􀈗􀂉􀊂􀂦
􀅦􀆐􀂅􀎗已编码的字符􀎘􀎍􀈗􀂉􀅦􀆐􀂅􀎗非字符􀎘􀁠
8.3. 3. 对已编码的字符或码位计数很重要。
􀇀􀂚􀋿􀁶􀎍􀂏􀂚􀊻􀆅􀅍􀅈􀂁􀊂􀂦􀉵􀍙􀋵􀆰􀎍􀌹􀍇􀆅􀈎􀉯􀂅􀌓􀋻􀂁 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀅄􀈠􀆰􀁠
􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀁽􀄍􀈎􀄅􀈍􀂁􀂏􀊪􀌒􀋽􀉵􀅄􀈠􀆰􀁠􀇀􀂚􀆣􀅣􀈌􀅰􀋗􀇻􀃘􀎗􀀙􀀵􀁄􀀴􀀶􀀴􀀷􀀴􀀵􀁄􀀴􀎘􀍘􀈗􀃗􀁲
􀅔􀊠􀎍􀂥􀃐􀈢􀉽􀌹􀁲􀅔􀊠􀁴􀎔
􀁔􀁘􀁗􀁕􀁖􀁑􀁙􀀁नमस्ते שָׁלוֹם
􀌹􀍘􀎐􀄝􀂁 􀀎􀀎 􀀅􀀂􀀆 􀁲􀊂􀂦􀎍􀃻􀄍􀈗 􀀍􀀒 􀁲􀅔􀊰􀋌􀁠􀅐􀈥􀅪􀃋􀌬􀇡􀁶 􀀦􀀞􀀛 􀆞􀆗􀎍􀄏􀂙􀃖􀅬􀃥
􀀎􀀌 􀁲􀊂􀂦􀁠􀃺􀂮􀌹􀈫􀎍􀃋􀁳􀉵􀊂􀂦􀇻􀍚􀁪􀃗􀁻􀂜􀂩􀌭􀂛􀅹􀊕􀂜􀃫􀈄􀃉􀁠􀁽􀌄􀇎􀅔􀊠􀁴􀌬􀇡􀁶
􀀭􀀬􀀞􀀉􀀏􀀎􀀁􀈎􀄨􀁣􀁣􀁲􀂯􀅅􀁠􀂯􀅐􀎔
􀁛 􀃄􀈪􀊔􀃬􀄤􀇽􀈜􀍁􀇖􀊢􀎍􀆐􀂮􀉮􀎗字素群􀎘􀁠
􀁛 􀄴􀍩􀃦􀌲􀃇􀅔􀈼􀁟􀇽􀂛􀈭􀆗􀁟􀃵􀌂􀇁􀇻􀇢􀆏􀁳􀅔􀊠􀁴􀉵􀍟􀆒􀈊􀎍􀍟􀆒􀃶􀂦􀈎􀈧􀂉􀅽􀊀􀋅􀊂􀉵
编码单元􀁠􀌹􀍘􀉵􀃿􀄮􀈎􀎍􀈄􀌅􀈎􀄴􀃎􀅕􀁟􀊉􀉷􀌸􀈎􀈧􀁣􀉤􀅝􀉵􀇻􀇢􀊼􀈣􀁳􀎍􀂜􀂩􀍟􀆒􀍩􀃦
􀍔􀈢􀋜􀂅􀆑􀅴􀊽􀅔􀊠􀁴􀃛􀍕􀉵􀄱􀅝􀅈􀅫􀉵􀂾􀅕􀊙􀍢􀁠
􀁛 􀅵􀆇􀁧􀅔􀊠􀁴􀉵􀍟􀆒􀁪􀅔􀊠􀁴􀉵􀊂􀂦􀇻􀍚􀈄􀃉􀎍􀍲􀋵􀂔􀉔􀈨􀆘􀇲􀍒􀍘􀄇􀆤􀁠􀃺􀂮􀈎􀊢􀅤􀅔􀂨
􀄤􀊺􀊞􀎍􀁣􀁲􀊂􀂦􀁽􀁩􀁣􀅝􀃸􀁣􀃝􀁠􀀨􀀧􀀫􀀡􀀰􀀁􀋏􀋫􀃥􀂁􀌹􀁣􀉜􀁠
8.4. 4. 在 NFC 中每个码位对应一个用户观感字符。
􀍝􀎍􀄮􀁶 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀄏􀂙􀋯􀊊􀃗􀁻􀈄􀍩􀅆􀉵􀉮􀇃􀋷􀆽􀅔􀊠􀁠􀃺􀂮􀈎􀄴􀅞􀍦􀂮􀉮􀁳􀎍􀅈􀅆􀇻􀅔􀊠
􀁽􀉄􀈗􀁣􀁲􀅽􀅚􀃈􀊷􀄕􀉵􀆞􀆗􀁠􀂯􀅐􀎍􀁧􀌽􀂯􀅓􀉵 􀀦􀀞􀀜 􀅔􀊠􀁴􀎐􀄝􀂁􀁦􀊑真实􀌒􀋽􀃑􀉵􀁦􀁲
真实􀌋􀉂􀎍􀃋􀀁􀀦􀀞􀀛􀀁􀆞􀆗􀁽􀉮􀂁􀀁􀀎􀀌􀀁􀁲􀊂􀂦􀁠􀌹􀇻􀍚􀌸􀈎􀌻􀌻􀌥􀌵􀀁􀀍􀀒􀀁􀁲􀉮􀇃􀋷􀆽􀅔􀊠􀁠
8.5. 5. 取字符串长度的length() 操作必须计算用户观感或已编码字符数量，
否则它就是没有正确支持 Unicode。
􀂏􀂚􀍇􀆅􀉮􀎗􀄇􀅔􀊠􀁴􀍟􀆒􀎘􀇱􀂫􀌷􀄭􀉵􀇻􀂹􀈢􀌉􀃢􀊕􀆎􀆏􀄤􀋅􀊕􀌒􀋽􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀇳􀇚􀊕
􀆒􀁠􀇜􀉠􀌹􀁲􀌉􀃢􀈪􀃕􀎍􀅈􀅆􀇻􀉍􀋭􀉵􀋅􀊕􀌒􀋽􀎍􀅐 􀀛􀀃􀁟􀀢􀀴􀁈􀀴􀎍􀉬􀋝 􀀡􀀛􀀭 􀈜􀌪􀍔􀁩􀇳􀇚
􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠􀂯􀅐􀎍􀅦􀂅􀌹􀁲􀃶􀅔􀊠􀉵􀅔􀊠􀁴􀎗🐨􀎘􀎍􀉮 􀀭􀀬􀀞􀀉􀀍􀀒 􀂫􀁶􀃎􀍓􀋅􀊂􀉵􀌎􀎍􀃋􀍟􀆒
􀍇􀆅􀈎 􀀎􀎕􀋑􀂮􀉮 􀀭􀀬􀀞􀀉􀀔 􀉵􀌒􀋽􀃞􀂠􀋿􀁶􀃋􀍟􀆒􀈎 􀀐􀁠􀌓􀋻􀉵􀈬􀉖􀄴􀂅􀎍􀌹􀂉􀌒􀋽􀉵􀋸􀋥􀉮
􀎗􀅔􀊠􀎘􀈢􀋯􀊊􀁣􀁲􀋅􀊂􀃶􀃁􀎍􀊕􀆎􀄠􀃞􀌓􀂙􀁶􀅘􀈎􀃤􀉵􀂐􀁸􀁠
􀍒􀅰􀈎􀌔􀎍􀌹􀂉 􀀙􀀨􀀡 􀌷􀄭􀉵􀋅􀊂􀃶􀃁􀇻􀍚􀈗􀈕􀅈􀉵􀅞􀍦􀆼􀁹􀁠􀇎􀁣􀁲 􀀭􀀬􀀞􀀉􀀔 􀅔􀊠􀁴􀃑􀃇􀇽􀂛
􀈊􀎍􀍙􀋵􀉵􀅰􀈎􀅔􀋡􀇻􀍚􀁠􀄌􀁣􀈁􀍵􀎍􀋾􀊦􀂜􀂩􀃋􀂖􀆼􀁹􀁧􀉵􀎗􀅔􀊠􀎘􀇻􀍚􀅰􀁩􀈎􀆣􀈗􀉮􀁠
9. 我们的结论
􀀭􀀬􀀞􀀉􀀍􀀒 􀈎􀄏􀄉􀍟􀆒􀋅􀊂􀎍􀄂􀅊􀃸􀊙􀍢􀎍􀄴􀄔􀊑􀆼􀁹􀁧􀍔􀈎􀈕􀊮􀊭􀉵􀁠􀅘􀄍􀈎􀄮􀃽􀄑􀃿􀄮􀋑
􀅕􀄴􀎍􀆘􀄆􀂁􀈄􀇻􀉓􀂀􀁠􀇀􀂚􀆁􀈙􀋗􀌺􀁣􀈹􀃖􀅬􀅘􀉵􀂮􀉮􀁠
􀉻􀈿􀂅􀅦􀃿􀉭􀆉􀄐 􀀙􀀨􀀡 􀉵􀂆􀇱􀂫􀆰􀎍􀄏􀊔􀈱􀆰􀁟􀌨􀆉􀄐􀃍􀅣􀆰􀄤􀊥􀈞􀆰􀈓􀃪􀍙􀋵􀁠􀇄􀂙􀎍􀈕
􀅏􀉵􀃨􀉆􀈎􀍭􀅂􀂮􀉮 􀀭􀀬􀀞􀀉􀀔 􀊛􀅔􀊠􀁴􀎍􀄴􀉮􀁩􀇳􀇚 􀀭􀀬􀀞􀀉􀀔 􀋑􀇧􀄈􀅤􀅔􀊠􀁴􀉵􀆉􀄐 􀀙􀀨􀀡􀎋􀅐
􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀀙􀀨􀀡􀎌􀈊􀈢􀄭􀌬􀇡􀁠􀁪􀅔􀊠􀁴􀉻􀃉􀉵􀊯􀋀 􀀙􀀨􀀡 􀇇􀂋􀍎􀈊􀎋􀅐 􀀭􀀡 􀂘􀊂􀄤􀇽􀂛􀊯􀋀
􀀙􀀨􀀡􀎌􀎍􀆰􀋗􀃗􀁻􀁩􀈎􀍡􀍿􀁠􀄴􀆐􀉮􀊕􀆎􀍘􀋀􀁣􀋅􀊂􀈎􀋨􀅈􀉵􀂟􀃮􀎍􀇀􀂚􀇋􀁩􀃥􀃂􀌧􀉵􀉫􀉯
􀈢􀄅􀎃􀁠
􀌔􀃥􀆰􀋗􀎍􀋾􀊦􀈟􀆠􀆠􀂮􀉮􀅔􀊠􀁴􀍇􀂵􀎋􀂯􀅐 􀀠􀀬􀀬􀀨 􀇑􀅌􀁟􀀰􀀥􀀤􀁟􀀫􀀧􀀙􀀨􀎌􀁠􀆣􀅆􀂏􀋿􀁶􀁩
􀆐􀌐􀉮􀇽􀈜􀍇􀂵􀃵􀌂􀎍􀂥􀅞􀍦􀁧􀍇􀂵􀃵􀌂􀃗􀁻􀍔􀉮􀋤􀌒􀄤 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀊷􀆿􀎍􀀭􀀬􀀞􀀉􀀔 􀈓􀈗􀂟
􀃮􀁠􀅦􀁩􀄖􀊪􀉵􀅔􀊠􀁴􀉮􀁩􀋀􀁣􀉵􀋅􀊂􀂮􀅄􀈠􀆒􀅈􀅈􀁧􀃲􀎍􀈓􀅣􀈌􀆘􀄆􀍡􀍿􀁠
􀇀􀂚􀅯􀃋􀋿􀁶􀊽 􀀛􀀇􀀇 􀈪􀃕􀅀􀃪 wchar_t 􀈎􀁣􀁲􀍝􀌓􀎍􀊽 􀀛􀀇􀀇􀀍􀀍 􀅀􀃪 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀂌􀉟􀁠􀇀
􀂚􀈓􀆻􀋵􀁣􀁲􀋗􀅕􀂾􀂜􀆼 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇻􀇢􀉵基本执行字符集􀁠􀉟􀄘􀎍􀌁􀈾􀁣􀁲 std::string
􀇁 char* 􀄁􀇻􀍔􀃍􀅣 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠􀎗􀄍􀋵􀌹􀍘􀇧􀄈􀇽􀈜􀎍􀅰􀋗􀃍􀅣 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎘􀎓􀈗􀂁
􀀭􀀬􀀞􀀉􀀔􀎍􀌹􀅰􀈎􀅫􀋩􀁣􀊇􀁠
􀈪􀃕􀆏􀉵 􀀹􀀴􀀶􀀸􀁆 􀈗􀁣􀄾􀌆􀋾􀋇􀍬􀁠􀈿􀅐 std::numpunct 􀁟std::moneypunct 􀄤
std::ctype 􀁩􀇳􀇚􀄉􀍟􀋅􀊂􀅔􀊠􀎋􀀭􀀬􀀞􀀉􀀔 􀉵􀍴 􀀙􀀫􀀛􀀡􀀡 􀍓􀃛􀄤 􀀭􀀬􀀞􀀉􀀍􀀒 􀉵􀍴 􀀚􀀥􀀨 􀍓􀃛􀎌􀎍
􀂙􀄃􀉄􀈗􀁶􀌬􀇡􀇬􀂰􀌧􀅇􀉵􀂵􀆲􀁠􀌹􀂉􀍡􀍿􀂊􀆢􀂶􀅄􀎔
􀁛 decimal_point() 􀄤 thousands_sep() 􀆐􀌷􀄭􀅔􀊠􀁴􀋑􀁩􀈎􀃶􀁲􀋅􀊂􀃶􀃁􀁠􀀛 􀌒􀋽􀉵
localeconv 􀃙􀇻􀅰􀈎􀌹􀁸􀂼􀉵􀎍􀅱􀊧􀌹􀃙􀇻􀈄􀉆􀋜􀅝􀁹􀁠
􀁛 toupper() 􀄤 tolower() 􀁩􀆐􀌐􀇜􀁣􀁲􀋅􀊂􀃶􀃁􀁶􀁣􀍹􀎍􀄮􀁶􀌹􀈫􀁩􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠􀈿􀅐
􀇔􀁤􀇽 􀎉 􀌼􀅔􀆩􀍺􀌬􀇡􀆿 􀀞􀀞􀀤􀎍􀆧􀇽 􀁏 􀋵􀌬􀇡􀆿 􀀫􀀫􀎋􀈗􀁲􀅈􀃑􀆞􀆗 ẞ􀎍􀂥􀂡􀋀􀅈􀅫􀃑􀋸􀃞
􀁩􀉮􀅘􀎌􀁠􀈸􀅅􀎍􀈧􀂉􀌒􀋽􀎋􀅐􀆁􀋚􀌒􀎌􀉵􀅫􀃑􀅔􀈽􀈗􀌋􀅲􀄉􀆞􀎍􀇄􀂙􀌬􀇡􀂯􀊕􀆤􀉈􀆼􀃥􀅔
􀈽􀉵􀂦􀋊􀇆􀋗􀈷􀊆􀌬􀇡􀅈􀅫􀃑􀁠
10. 如何在 Windows 上处理文本
􀈜􀋡􀁷􀋵􀌙􀌨􀆉􀄐􀆏􀆕􀄆􀄤 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀋅􀊕􀁠􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀆉􀄐􀉵􀍡􀍿􀈎􀎍􀅘􀉵􀊛􀅔􀊠􀁴􀊯􀋀
􀀙􀀨􀀡􀎋􀋝􀂒􀂓􀎌􀁩􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠􀊽 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀀙􀀨􀀡 􀂡􀍄 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀅔􀊠􀁴􀉵􀄨􀁣􀈁􀉆􀈎􀌬􀇡
􀁶􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀎋􀄂􀄗􀅤􀅔􀊠􀁴􀎌􀁠
􀍲􀋵􀉈􀆼􀉵􀈎􀎍􀇀􀂚􀉵􀃕􀃞􀁪􀆦􀌭􀉵􀃿􀉣􀇛􀃷􀇂􀉟􀉻􀄅􀁠􀇀􀂚􀉵􀈁􀉆􀈎􀄴􀁵􀌶 􀀙􀀨􀀡 􀌘􀉮􀈊􀇆
􀌬􀇡􀅔􀊠􀁴􀎍􀋑􀁩􀍟􀈚􀇚􀈗􀅤􀅔􀊠􀁴􀇻􀇢􀁠􀃧􀍵􀉵􀊝􀋡􀅽􀊻􀌔􀈋􀎍􀌹􀈫􀂼􀄏􀂙􀇬􀃲􀆰􀋗􀄤􀊗
􀅝􀆰􀎍􀂴􀇚􀂘􀊂􀊥􀉉􀎍􀈓􀈗􀃣􀂅􀁪􀃋􀂖􀌭􀂛􀂋􀂆􀁠
􀁛 􀁩􀋵􀄴􀁵􀌶􀇧􀄈􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀄁􀇻􀉵􀀁􀀙􀀨􀀡􀀁􀁺􀅅􀉵􀄵􀈁􀉮 wchar_t 􀇁 std::wstring 􀁠
􀁛 􀁩􀋵􀄴􀇧􀄈􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀄁􀇻􀉵􀀁􀀙􀀨􀀡􀀁􀁺􀅅􀉵􀄵􀈁􀉮 _T("") 􀇁 L"" 􀅔􀍵􀍚􀁠
􀁛 􀁩􀋵􀂮􀉮􀅦 UNICODE 􀆅􀍚􀇸􀆽􀉵􀊪􀄻􀁟􀃙􀇻􀊢􀎍􀅐 LPTSTR 􀁟CreateWindow() 􀄤 _T()
􀅛􀎍􀋑􀋵􀉮 LPWSTR 􀁟CreateWindowW() 􀄤􀈏􀆗 L"" 􀅔􀍵􀍚􀁠
􀁛 􀉟􀋑􀎍􀋵􀅑􀊺􀅝􀁹􀁧 UNICODE 􀄤 _UNICODE 􀎍􀈢􀍑􀃆􀁩􀅫􀆨􀇎 􀀭􀀬􀀞􀀉􀀔 􀊛􀅔􀊠􀁴􀂡􀍄􀊽
􀀙􀀦􀀫􀀡 􀀯􀀼􀁁􀀙􀀨􀀡 􀆋􀁬􀍇􀌵􀋅􀌌􀁠􀄏􀂙􀂶􀇵 􀀮􀀫 􀍹􀉹􀌆􀅝􀎍􀄗􀅔􀄎􀂼􀎗使用Unicode 字符
集􀎘􀁠
􀁛 􀄴􀊕􀆎􀉵􀂜􀂩􀄵􀈁􀎍􀍔􀋿􀁶 std::string 􀄤 char* 􀄉􀍚􀈎􀀁􀀭􀀬􀀞􀀉􀀔􀁠
􀁛 􀅐􀈥􀂬􀋗􀃑 􀀛􀀇􀀇􀎍􀁨􀌽􀉵 narrow() 􀀋 widen() 􀌬􀇡􀃙􀇻􀅦􀂅􀃎􀋒􀌬􀇡􀌒􀉆􀍴􀆅􀅞􀉮􀁠􀆜􀉟􀂬􀁽􀄏􀂙􀉮􀃤􀉵􀀁􀀭􀀬􀀞􀀉􀀔􀀋􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀌬􀇡􀂘􀊂􀁠
􀁛 􀄍􀉮􀇧􀄈􀅤􀅔􀊠􀎋 LPWSTR 􀎌􀉵 􀀯􀀼􀁁􀀏􀀎 􀃙􀇻􀁠􀁱􀊍􀂮􀉮􀇧􀄈 LPTSTR 􀄤 LPSTR 􀉵􀃙􀇻􀁠􀌹
􀈫􀂡􀍄􀄁􀇻􀎔
::SetWindowTextW(widen(标准库字符串变量 或 "字符串字面量").c_str())
􀌹􀊑􀈁􀉆􀂮􀉮􀁨􀌽􀉵􀌬􀇡􀃙􀇻􀁠􀄌􀌕􀄁􀍣􀎍􀈗􀃉􀌬􀇡􀆰􀋗􀉵􀌔􀈋􀁠
􀁛 􀅦􀂅􀀁􀀥􀀞􀀛􀀁􀅔􀊠􀁴􀎔
CString someoneElse; // MFC 引入的某字符串。
// 在传递给别的 API 调用前尽早转换掉：
std::string s = str(boost::format("你好 %s\n") % narrow(someoneElse));
AfxMessageBox(widen(s).c_str(), L"错误", MB_OK);
􀁛 􀅦􀂅 􀀊􀀦􀀝􀀬 􀆕􀄆􀂏􀄠􀎔􀂮􀉮􀄽􀂅 􀀭􀀬􀀞􀀉􀀍􀀒 􀉵􀃿􀉭􀅔􀊠􀁴􀄏􀋗􀍯􀂙􀍑􀃆􀁠􀌛􀌃􀅔􀊠􀁴􀊪􀉵􀇧􀄊
􀁱􀍙􀈒􀍳􀂁􀃋􀅞􀉪􀊸􀋡􀁠􀂯􀅐􀎍 string[index] 􀇱􀂫􀄏􀋗􀌷􀄭􀈧􀅔􀊠􀉵􀁣􀍓􀃛􀎋􀀭􀀬􀀞􀀉􀀔 􀅔
􀋡􀇻􀊷􀁽􀅐􀈸􀎌􀁠􀆜􀆎􀃝􀎑􀅔􀊠􀁴􀃥􀌲􀃘􀇽􀂛􀇁􀍇􀂵􀌆􀅃􀈊􀎍􀌃􀆤􀋵􀇛􀅝
Encoding.UTF8 􀁠􀃕􀅃􀅏􀇧􀄈􀌬􀇡􀎋􀈿􀅐􀃌􀄻􀉵 􀀙􀀫􀀨􀀊􀀦􀀝􀀬 􀀯􀀸􀀵 􀆐􀉮􀊕􀆎􀌲􀃘 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂
􀉵􀀁􀀠􀀬􀀥􀀤􀀁􀈊􀎌􀆘􀌤􀉵􀆰􀋗􀇠􀅋􀁠
10.1. 在 Windows 上应付文件、文件名和 fstream
􀁛 􀅑􀊺􀂙􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀌲􀃘􀇽􀈜􀇽􀂛􀁠
􀁛 􀁶􀂁 􀀪􀀙􀀡􀀡􀀋􀀧􀀧􀀜􀎍􀍑􀃆􀂮􀉮 fopen() 􀁠􀅐􀈥􀍴􀋵􀉮􀎍􀅰􀉮 _wfopen() 􀎍􀆋􀁬􀍐􀆥􀃧􀌽􀉵
􀀯􀀼􀁁􀀙􀀨􀀡􀀁􀌘􀉮􀊳􀅝􀁠
􀁛 􀁩􀋵􀇎 std::string 􀇁 const char* 􀇽􀂛􀄗􀂡􀍄􀊽 fstream 􀅢􀈃􀉵􀄁􀇻􀁠􀀥􀀫􀀮􀀛 􀀛􀀪􀀬
􀁩􀇳􀇚􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀄁􀇻􀎍􀂥􀈎􀈗􀁲􀍴􀈪􀃕􀇊􀅶􀎍􀌹􀈫􀉮􀎔
􀁛 􀉮 widen 􀈢􀇎 std::string 􀌬􀇡􀆿 std::wstring 􀎔
std::ifstream ifs(widen("你好"), std::ios_base::binary);
􀅐􀈥􀀁􀀥􀀫􀀮􀀛􀀁􀅦 fstream 􀉵􀆮􀆒􀈗􀇄􀆵􀇵􀎍􀇀􀂚􀊺􀅪􀇅􀅹􀄀􀇤􀌹􀈫􀉵􀌬􀇡􀁠
􀁛 􀌹􀈼􀂘􀊂􀁩􀌨􀆉􀄐􀎍􀅪􀈢􀋓􀅝􀋵􀇅􀃬􀂶􀇵􀁠
􀁛 􀇁􀋐􀄏􀂙􀇎􀌬􀇡􀅨􀋳􀌤􀈢􀁠
10.2. 转换函数
􀈜􀇛􀃷􀂮􀉮 􀀚􀁂􀁂􀁅􀁆􀀊􀀦􀁂􀁉􀀼􀀷􀀸􀀁􀆏􀁳􀉵􀌬􀇡􀃙􀇻􀎋􀅘􀌸􀉄􀌺􀃇􀀁􀀵􀁂􀁂􀁅􀁆􀀁􀅜􀈁􀆏􀎌􀎔
std::string narrow(const wchar_t *s);
std::wstring widen(const char *s);
std::string narrow(const std::wstring &s);
std::wstring widen(const std::string &s);
􀈜􀆏􀌸􀅨􀋳􀂁􀆅􀉮 􀀛 􀄤 􀀛􀀇􀀇 􀆏􀃙􀇻􀎍􀇬􀂰􀂁􀆐􀂗􀇽􀂛􀇱􀂫􀄤􀉮 􀀼􀁂􀁅􀁆􀁄􀀸􀀴􀁀 􀌖􀃑 􀀭􀀬􀀞􀀉􀀔 􀉵􀈁
􀉆􀁠
􀉮 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀉵 MultiByteToWideChar 􀄤 WideCharToMultiByte 􀃙􀇻􀁽􀆣􀅣􀈌􀅞􀉪􀁧􀌽
􀃙􀇻􀄤􀅨􀋳􀁠􀂬􀌸􀄏􀂙􀉮􀃤􀉵􀎋􀁽􀌄􀈓􀆬􀉵􀎌􀌬􀇡􀂯􀊕􀁠
11. 常见问题
􀀍􀀊 11.1. Q: 你是不是 Linux 人？你是不是想趁机反对 Windows？
􀀙􀀖 􀁩􀎍􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀂣􀇀􀆿􀍟􀁠􀇀􀁷􀋵􀌸􀈎􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁧􀂼􀆕􀄆􀁠􀇀􀋿􀁶􀆦􀌭􀄴􀅔􀊠􀁴􀍽􀄼
􀌓􀃇􀈺􀍅􀎍􀄮􀁶􀂖􀂚􀈿􀃤􀉵􀃼􀄩􀈓􀈉􀂼􀂁􀃓􀅝􀁠
􀀎􀀊 11.2. Q: 你是不是亲英派？你是不是暗自认为英语字母表和英国文化是世界上最
好的？
􀀙􀀖 􀁩􀎍􀇀􀅢􀁾􀉵􀌒􀋽􀁩􀄴 􀀙􀀫􀀛􀀡􀀡 􀊂􀋯􀁳􀁠􀇀􀋿􀁶􀉮􀃶􀅔􀋡􀋗􀋅􀊂 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀉵􀈭􀆗􀁩􀁣􀅝
􀈎􀂎􀋤􀉌􀎍􀉬􀋝􀁪􀂏􀊪􀂋􀂆􀈄􀃉􀁠􀂬􀄏􀂙􀂂􀌳􀌔􀈜􀈢􀅰􀁩􀆐􀌐􀅕􀄴􀊕􀆎􀉖􀂘􀊂􀁟􀋈􀍸􀁟􀀰􀀥􀀤
􀇽􀂛􀁟􀇱􀂫􀊯􀋀􀇽􀂛􀄗􀊢􀈟􀅦􀈟􀇽􀈜􀇧􀄊􀁠􀂥􀈅􀉟􀅕􀄴􀎍􀍒􀁸􀌔􀈋􀇽􀈜􀁩􀁣􀅝􀈎􀊽􀂏􀊪􀉽
􀉵􀁠
􀀏􀀊 11.3. Q: 你们这帮人到底在想什么？我用C# 和/或Java 编程，完全不用考虑什
么编码啊。
􀀙􀀖 􀆋􀍴􀅐􀈸􀁠􀀛􀀃 􀄤 􀀢􀀴􀁈􀀴 􀇬􀂰􀉵 char 􀊪􀄻􀍔􀈎 􀀍􀀒 􀈿􀉤􀉵􀁠􀆱􀄪􀂬􀎍􀅘􀁩􀁣􀅝􀋗􀅚􀇼􀋯􀊊
􀁣􀁲 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀅔􀊠􀁠􀀊􀀦􀀝􀀬 􀊱􀆘􀇱􀂫 str[i] 􀁽􀈎􀇱􀂫􀄴􀃎􀍓􀋯􀊊􀃶􀃁􀁧􀎍􀇄􀂙􀌹􀄂􀈎􀁣􀁲
􀁩􀅚􀃈􀉵􀇒􀌜􀁠􀇱􀂫􀅓􀅔􀊠􀁴􀉵􀈁􀉆􀂠􀃊􀎅􀍖􀉝􀄵􀇎􀍴 􀀚􀀥􀀨 􀅔􀊠􀁣􀃚􀁰􀇾􀎍􀌷􀄭􀁣􀁲􀈄􀇷
􀉵􀅔􀊠􀁴􀁠
􀈸􀅅􀎍􀂬􀌸􀋵􀉈􀆼􀄴􀆠􀊉􀉷􀁧􀉵􀇽􀂛􀁟􀋈􀊾􀍇􀂵􀁟􀅅􀍓􀌆􀅃􀇁􀃋􀂖􀊕􀆎􀋵􀌖􀄇􀉵􀄵􀈁􀃑􀇽􀈜
􀈊􀇄􀂮􀉮􀉵􀋅􀊂􀁠􀈄􀌅􀃎􀅣􀈎􀂐􀁸􀍔􀌕􀂮􀉮 System.Text.Encoding.UTF8 􀀅􀀊􀀦􀀝􀀬􀀆􀎍􀋑􀁩􀋵
􀉮 Encoding.ASCII 􀁟􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀇁􀇅􀈟􀀁􀀨􀀜􀀭􀁠
􀆑􀅴􀈮􀈦􀍁􀍝􀂁􀃎􀍓􀅔􀊠􀁴􀋯􀊊􀉵􀈁􀉆􀎍􀆟􀄦􀂁 􀀙􀀫􀀨􀀊􀀦􀀝􀀬 􀌹􀈫􀉵 􀀯􀀸􀀵 􀈮􀈦􀎔􀋈􀊾􀆐􀉮􀃗􀁻
􀃈􀋵􀉮 􀀭􀀬􀀞􀀉􀀔 􀈢􀌲􀃘􀎋􀄤􀌲􀃇􀎌􀅔􀊠􀎍􀄴􀅈􀉍􀍚􀉵􀋈􀊾􀆐􀉮􀄤􀈘􀃫􀁳􀎍􀅔􀊠􀁴􀌬􀇡􀅧􀋞􀂁􀈏
􀋪􀆕􀍜􀁠
􀀐􀀊 11.4. Q: UTF-8 不就是一个兼容 ASCII 的尝试吗？为什么还要用这老古董？
􀀙􀀖 􀁩􀌅􀃿􀈢 􀀭􀀬􀀞􀀉􀀔 􀈎􀄛􀄴􀃟􀍉􀈊􀈎􀂫􀁶􀁣􀁲􀃍􀅣􀆰􀇪􀈂􀎍􀉪􀄴􀅘􀈿􀂜􀂩􀃋􀅘 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀋅􀊂
􀈓􀅏􀎍􀁽􀈓􀉍􀋭􀁠
􀀑􀀊 11.5. Q: 占用超过两字节的UTF-16 字符在实际生活中十分罕见，所以UTF-16
就可以看作是一个定长编码，有一堆好处。我们就不能无视这些字符吗？
􀀙􀀖 􀂬􀁩􀇇􀊦􀌁􀂬􀉵􀌭􀂛􀌆􀋾􀅚􀇼􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀎍􀈎􀄴􀆕􀉨􀊟􀄚􀎖􀍒􀁸􀎍􀈅􀉟􀂬􀇇􀊦􀇳􀇚􀎍􀋑
􀍴 􀀚􀀥􀀨 􀅔􀊠􀋉􀋶􀅰􀁩􀇳􀇚􀎍􀍪􀂁􀊽􀌭􀂛􀉎􀌍􀅀􀃪􀍯􀆒􀎍􀅞􀄴􀉄􀂐􀁸􀅏􀅂􀁠􀉟􀋑􀎍􀉾􀈷􀂹􀆤
􀄴􀆼􀉵􀈎􀎍􀉾􀅞􀉵􀆐􀉮􀊕􀆎􀁩􀆯􀁸􀇱􀂫􀅔􀊠􀁴􀎓􀄍􀈎􀃿􀅨􀁩􀃬􀄵􀂡􀍄􀅔􀊠􀁴􀁠􀌹􀆼􀄢􀉿
􀎗􀃗􀁻􀅝􀍟􀎘􀃗􀁻􀉄􀈗􀆰􀋗􀂟􀃮􀎋􀄁􀋶􀎗􀆰􀋗􀎘􀎌􀎍􀌁􀅔􀊠􀁴􀊁􀁣􀉜􀂷􀈗􀄏􀋗􀇞􀍙􀋵􀁠
􀀒􀀊 11.6. Q: 只要程序员知道如何使用，为什么不让他们在程序内部选择他们最爱的
编码？
􀀙􀀖 􀇀􀂚􀁩􀄅􀅦􀂜􀂩􀋅􀊂􀉵􀈷􀊆􀂮􀉮􀁠􀂥􀈎􀅐􀈥􀄖􀁣􀁲􀊪􀄻􀎍􀈿􀅐 std::string 􀎍􀈬􀇢􀁧􀁨
􀇽􀌒􀄿􀈗􀁩􀄖􀉵􀄝􀁹􀎍􀅰􀆘􀄆􀍡􀍿􀂁􀁠􀈗􀂉􀂏􀂠􀋿􀁶􀅘􀆼􀄢􀉿􀎗􀀙􀀦􀀫􀀡 􀂘􀊂􀍸􀎘􀎍􀄌􀁣􀂉􀂏
􀂠􀋿􀁶􀎗􀌹􀂘􀊂􀈗􀍡􀍿􀎍􀁩􀇳􀇚􀍴􀋤􀌒􀇽􀈜􀎘􀁠􀄴􀇀􀂚􀉵􀊕􀆎􀍘􀎍􀅘􀅰􀆼􀄢􀉿􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸
􀉵 􀀭􀀬􀀞􀀉􀀔 􀅔􀊠􀁴􀁠􀌹􀈫􀉵􀃛􀈺􀈎􀌄􀅆 􀀵􀁇􀀺 􀄤􀋣􀆴􀉵􀉖􀉅􀁠􀇀􀂚􀉵􀁭􀉰􀅞􀄴􀁩􀍲􀋵􀌁􀂃􀆸􀄉
􀆤􀈓􀅄􀈠􀂁􀁠􀇼􀁲􀋭􀁮􀄮􀈸􀃘􀉪􀂁􀁣􀄾􀈗 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀍡􀍿􀉵􀌭􀂛􀁠􀀢􀁂􀀸􀀿􀀧􀁁􀀫􀁂􀀹􀁆􀁉􀀴􀁄􀀸 􀋿􀁶􀎍􀋵
􀆻􀉐􀉙􀌹􀂉􀈗􀍡􀍿􀉵􀌭􀂛􀎍􀅰􀆤􀌁􀈾􀁣􀁲􀊕􀆎􀄠􀍔􀆼􀌊􀃥􀋅􀊂􀉵􀍡􀍿􀁠􀇀􀂚􀄺􀂵􀎍􀄍􀋵􀌁􀌭
􀂛 􀀙􀀨􀀡 􀎇􀋿􀂮􀉮􀋀􀁣􀉵􀁷􀉍􀋅􀊂􀎍􀊕􀆎􀄠􀁩􀍲􀋵􀆿􀁶􀁣􀁲􀌒􀋽􀇽􀅔􀁫􀅢􀅰􀋗􀅇􀈷􀊆􀄵􀃑􀁣􀁲
􀇽􀂛􀅄􀃦􀊕􀆎􀂁􀁠
􀀓􀀊 11.7. Q: 我的应用程序只有图形界面，又不做IP 通信，也不做文件读写。为什
么我调用Windows API 的时候非要来来回回转换字符串，而不是干脆只用宽
字符串变量呢？
􀌹􀈎􀁲􀄕􀉫􀉵􀇣􀆡􀁠􀊆􀅞􀎍􀌹􀊑􀆸􀃔􀁨􀉮􀅤􀅔􀊠􀁴􀉄􀈗􀍡􀍿􀁠􀂥􀈎􀅐􀈥􀂬􀅪􀈢􀇇􀊦􀃪􀁲􀍕􀋊
􀇽􀂛􀇁􀈆􀆪􀇽􀂛􀎍􀌕􀋏􀋫􀇎􀅔􀊠􀁴􀍔􀌬􀇡􀆿􀊛􀅔􀊠􀁴􀁠􀌹􀈫􀄏􀂙􀃆􀍪􀄘􀆶􀁠
􀀔􀀊 11.8. Q: 既然你不打算用Windows 的LPTSTR / TCHAR 等宏，为什么还要打开
UNICODE 定义呢？
􀀙􀀖 􀌹􀈎􀁣􀁲􀎀􀅅􀉵􀅙􀃈􀇪􀈂􀎍􀍤􀈶􀅪 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀉵 char* 􀅔􀊠􀁴􀂡􀃇􀍒􀂉􀇧􀄈 􀀙􀀦􀀫􀀡 􀅔􀊠
􀁴􀉵 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀀙􀀨􀀡 􀃙􀇻􀁠􀇀􀂚􀆻􀂍􀉭􀁣􀁲􀋅􀌌􀍝􀌓􀁠􀁪􀌹􀁲􀆸􀃔􀊪􀂤􀎍􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁧􀅪
􀁣􀁲 argv[] 􀅔􀊠􀁴􀂡􀃇 fopen() 􀁽􀈎􀁣􀁲􀍯􀂙􀄆􀉪􀉵 􀀵􀁇􀀺􀁠􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀂺􀅝􀉮􀇃􀁩􀂠􀂡􀃇
􀍴􀆜􀃧􀊂􀍸􀉵􀇽􀂛􀄗􀁠􀇅􀅹􀉎􀌍􀍇􀆅􀁩􀋗􀄆􀉪􀌹􀊑􀍡􀍿􀎍􀍪􀍴􀂬􀉵􀉎􀌍􀄠􀋗􀉢􀊶􀄵􀂽􀅭􀂡􀃇
􀁣􀂉􀁳􀇽􀇽􀂛􀄗􀁠􀉟􀋑􀌹􀌸􀈎􀁲􀍝􀌓􀉵􀊕􀆎􀍊􀌱􀁠􀈗􀂁 UNICODE 􀅝􀁹􀎍􀌹􀊑􀆸􀃔􀅰􀂠􀃘􀋅
􀌌􀍝􀌓􀁠
􀀕􀀊 11.9. Q: 认为微软终将停止使用宽字符串是不是太幼稚了？
􀀙􀀖 􀌁􀇀􀂚􀎂􀃃􀉽􀃥􀂖􀂚􀇳􀇚 CP_UTF8 􀂫􀁶􀈗􀇷􀂘􀊂􀍸􀉵􀍒􀁣􀅉􀁠􀌹􀁩􀂠􀆣􀍯􀁠􀁺􀄘􀎍􀇀􀂚
􀋿􀁶 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀆕􀄆􀋐􀅰􀇋􀁩􀃥􀉫􀉯􀋁􀋂􀂮􀉮􀅤􀅔􀊠 􀀙􀀨􀀡􀁠􀋑􀁬􀎍􀃪􀃇􀅦 CP_UTF8 􀉵􀇳􀇚􀅰
􀋗􀉺􀇧􀎗􀂶􀅄􀎘􀁣􀂉􀅽􀈗􀁩􀇳􀇚􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀉵􀊕􀆎􀄤􀆏􀁠
􀁣􀂉􀂏􀌔􀃪􀃇 CP_UTF8 􀇳􀇚􀂠破坏􀉪􀈗􀂮􀉮 􀀙􀀦􀀫􀀡 􀀙􀀨􀀡 􀉵􀊕􀆎􀎍􀇢􀌔􀈎􀄮􀁶􀌹􀈫􀎍􀆦􀌭􀄍
􀅏􀃟􀆔􀁣􀁲􀅤􀅔􀊠􀁴 􀀙􀀨􀀡􀁠􀌹􀈎􀍝􀉵􀁠􀉬􀋝􀁣􀂉􀉍􀋭􀉵 􀀙􀀦􀀫􀀡 􀋅􀊂􀁽􀈎􀄉􀍟􀉵􀎋􀂯􀅐 􀀫􀀻􀀼􀀹􀁆
􀀢􀀡􀀫􀎌􀎍􀇄􀂙􀈷􀊆􀉵􀂘􀊂􀍔􀋗􀇮􀅝􀄉􀍟􀋅􀊂􀁠􀆦􀌭􀍁􀇖 􀀭􀀛􀀫􀀉􀀎 􀃶􀊵􀈎􀃽􀄑􀃿􀄮􀎓􀄴 􀀭􀀬􀀞􀀉􀀔
􀄆􀈋􀃧􀎍􀂏􀂚􀋿􀁶􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀎗􀄍􀈎􀁣􀁲􀅤􀉵􀀁􀀙􀀫􀀛􀀡􀀡􀎘􀎍􀌸􀋿􀁶􀂮􀉮􀅝􀍟􀋅􀊂􀆣􀍙􀋵􀁠
􀀍􀀌􀀊 11.10. Q: 你对于 BOM （端序标记）是怎么看的？
􀀙􀀖􀀁􀈬􀇢􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀈪􀃕􀀁􀀅􀁈􀀒􀀊􀀎􀀈􀀁􀁃􀀊􀀏􀀌􀀆􀀖 􀎗􀀭􀀬􀀞􀀉􀀔􀀁􀈅􀁩􀋵􀉁􀁽􀁩􀇩􀋧􀂮􀉮􀀁􀀚􀀧􀀥􀎘􀁠
􀊞􀆎􀍡􀍿􀄂􀈎􀁣􀁲􀍑􀃆 􀀭􀀬􀀞􀀉􀀍􀀒 􀉵􀉫􀉯􀁠􀀭􀀬􀀞􀀉􀀔 􀉄􀈗􀊞􀆎􀍡􀍿􀎍􀀭􀀬􀀞􀀉􀀔 􀀚􀀧􀀥 􀉵􀅕􀄴􀄍􀈎􀉮
􀈢􀅁􀈋􀌹􀈎􀁣􀁲 􀀭􀀬􀀞􀀉􀀔 􀉍􀁠􀅐􀈥􀄍􀈗 􀀭􀀬􀀞􀀉􀀔 􀈎􀄨􀁣􀉍􀋭􀉵􀋅􀊂􀎋􀄴􀂆􀋒􀋈􀁭􀉰􀅽􀊻􀈎􀌹
􀈫􀎌􀎍􀀚􀀧􀀥􀀁􀅰􀈎􀅆􀂪􀉵􀁠􀅞􀍦􀁧􀎍􀉪􀄴􀅈􀅆􀇻􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀉵􀇽􀈜􀇽􀂛􀍔􀉼􀉲􀂁􀀁􀀚􀀧􀀥􀁠
􀇀􀂚􀈄􀉆􀇧􀄈􀎍􀃺􀂮􀈎􀄴􀂿􀇽􀂛􀌼􀇧􀌹􀈫􀊥􀃶􀉵􀆸􀆞􀁨􀎍􀇄􀈗􀉪􀈗􀉵􀂘􀊂􀍔􀆤􀉈􀆼􀃥 􀀚􀀧􀀥
􀉵􀍡􀍿􀁠
􀀍􀀍􀀊 11.11. Q: 你如何评价行尾标记？
􀀙􀀖 􀉀􀌻􀂮􀉮 \n (0x0a) 􀂫􀁶􀋭􀅲􀈪􀌃􀎍􀃺􀂮􀈎􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀁧􀁠􀇽􀂛􀆐􀂙􀂄􀌺􀃦􀈳􀆗􀌖
􀃑􀎍􀌹􀂴􀌈􀂁􀂆􀇱􀂫􀆰􀎓􀁣􀁲􀊕􀆎􀄴􀂜􀂩􀊯􀋀􀁧􀍔􀂠􀊽􀃘􀉻􀄖􀊼􀈥􀁠􀈅􀉟􀀛 􀄤 􀀛􀀇􀀇 􀈪􀃕􀍖
􀉮􀂁 \n 􀂫􀁶􀃎􀍓􀋭􀅲􀋯􀊊􀎍􀌹􀅰􀅧􀋞􀂁􀇄􀈗􀇽􀂛􀂠􀂙 􀀨􀀧􀀫􀀡􀀰 􀆺􀂯􀌲􀃘􀁠􀇽􀂛􀄴 􀀯􀀼􀁁􀀷􀁂􀁉􀁅
􀁧􀉮􀎗􀌃􀂃􀈜􀎘􀇇􀆕􀄏􀋗􀂠􀃘􀍡􀍿􀎕􀉟􀋑􀂜􀂩􀂿􀈫􀉵􀇽􀈜􀋅􀌱􀄫􀍔􀋗􀉫􀋻􀌹􀈫􀉵􀋭􀅲􀁠
􀇀􀂚􀁽􀂻􀅏􀀁􀀫􀀡􀀁􀃶􀂦􀁟􀀡􀀫􀀧􀀉􀀔􀀒􀀌􀀍 􀈆􀈚􀈭􀆗􀎍􀉮􀄋􀉜􀋑􀁩􀈎􀍆􀄒􀂫􀁶􀅫􀇻􀉜􀁠
􀀍􀀎􀀊 11.12. Q: 那文本处理算法、字节对齐之类的性能问题呢？
􀀙􀀖 􀂮􀉮 􀀭􀀬􀀞􀀉􀀍􀀒 􀉾􀉵􀈓􀅏􀄚􀎖􀄏􀋗􀈎􀉵􀁠􀀡􀀛􀀭 􀉮 􀀭􀀬􀀞􀀉􀀍􀀒 􀈎􀃽􀄑􀄮􀊰􀎍􀌹􀈫􀉵􀌎􀅰􀍯􀂙􀈿
􀌰􀁠􀉟􀋑􀎍􀅈􀍓􀃛􀆸􀃔􀁨􀅔􀊠􀁴􀈎􀂫􀁶 􀀶􀁂􀁂􀀾􀀼􀀸 􀅦􀆢􀎍􀁩􀈎􀃬􀁩􀃬􀅰􀇥􀆎􀇁􀄅􀌬􀁠􀁣􀁲􀈓􀊖
􀅥􀉵􀋅􀊂􀅰􀈓􀈗􀃣􀂅􀆰􀋗􀁠
􀀍􀀏􀀊 11.13. Q: 人们误用 UTF-16 并误以为它每个字符就是 16 比特，是不是失误？
􀀙􀀖􀀁􀁩􀁣􀅝􀁠􀁩􀌵􀊆􀅞􀎍􀄔􀊑􀌆􀋾􀉵􀁣􀁲􀍙􀋵􀉤􀆰􀅰􀈎􀅙􀃈􀆰􀎍􀋅􀊂􀁽􀁩􀂯􀅅􀁠
􀀍􀀐􀀊 11.14. Q: 如果std::string 表示UTF-8，那用std::string 存储纯文本的
时候不会弄混吗？
􀀙􀀖 􀉄􀈗􀊵􀇽􀈜􀌹􀊑􀈲􀆭􀁠􀉄􀉫􀉯􀄴􀁣􀁲􀄗􀄎􀎗􀁅􀁆􀁄􀀼􀁁􀀺􀎘􀉵􀊪􀍘􀅕􀂾􀂑 􀀙􀀫􀀛􀀡􀀡 􀇁 􀀙􀀦􀀫􀀡 􀂘􀊂􀍸
􀋅􀊂􀉵􀇽􀈜􀁠
􀀍􀀑􀀊 11.15. Q: 在Windows 中传递字符串时，UTF-8 和UTF-16 之间的转换不会拖
慢我的程序吗？
􀀙􀀖 􀎂􀃃􀎍􀈄􀌅􀉮􀄧􀊑􀂼􀉆􀎍􀂬􀋓􀅝􀂠􀂼一些􀌬􀇡􀎍􀋵􀁸􀈎􀊯􀋀􀌘􀉮􀎍􀋵􀁸􀈎􀁪􀁭􀉰􀂋􀂆􀁠􀂯
􀅐􀎍􀉮 􀀬􀀛􀀨 􀄆􀌿􀁣􀈼􀇽􀈜􀅔􀊠􀁴􀁠􀋑􀁬􀎍􀍒􀂉􀇧􀄈􀅔􀊠􀁴􀉵􀊯􀋀 􀀙􀀨􀀡 􀍇􀆅􀈎􀇉􀋭􀃿􀈜􀅰􀆾􀉵
􀂜􀃫􀎍􀈿􀅐􀉮􀇃􀉰􀍵􀇁􀇽􀂛􀊯􀋀􀇱􀂫􀁠􀅐􀈥􀂬􀉵􀊕􀆎􀁳􀃈􀈎􀁪􀊯􀋀 􀀙􀀨􀀡 􀉵􀂋􀂆􀎍􀇀􀂚􀈢􀉽􀁲
􀅫􀅞􀎄􀁠
􀇱􀂫􀊯􀋀 􀀙􀀨􀀡 􀉵􀁣􀁲􀃌􀄻􀉮􀉆􀅰􀈎􀇇􀆕􀇽􀂛􀁠􀇉􀋭􀂙􀁨􀃙􀇻􀄴􀇀􀉵􀈟􀄫􀁧􀉮􀂁
􀀅􀀍􀀔􀀐 􀁎 􀀏􀀆􀁓􀁅􀎔
void f(const wchar_t* name)
{
HANDLE f = CreateFile(name, GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);
DWORD written;
WriteFile(f, "Hello world!\n", 13, &written, 0);
CloseHandle(f);
}
􀋑􀌹􀁲􀉮􀂁􀀁􀀅􀀍􀀔􀀒 􀁎 􀀌􀀊􀀓􀀆􀁓􀁅􀎔
void f(const char* name)
{
HANDLE f = CreateFile(widen(name).c_str(), GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_ALWAYS, DWORD written;
WriteFile(f, "Hello world!\n", 13, &written, 0);
CloseHandle(f);
}
􀎋􀁰􀈴􀍔􀉮􀂁 name="D:\\a\\test\\subdir\\subsubdir\\this is the sub
dir\\a.txt" 􀎍􀄇􀂇􀈴􀆉􀄷􀁠􀇀􀂚􀉮􀂁􀁣􀁲􀂟􀎑􀌵􀉵 widen 􀎍􀃋􀃣􀉮􀂁 􀀛􀀇􀀇􀀍􀀍 􀂴􀌈
std::string 􀌼􀋂􀂾􀅕􀉵􀉤􀆰􀁠􀎌
􀄍􀈗 􀀅􀀍 􀁎 􀀎􀀆􀀄 􀉵􀆕􀍜􀁠􀃔􀁬􀎍 MultiByteToWideChar 􀁩􀈎􀈕􀆬􀉵 􀀭􀀬􀀞􀀉􀀔􀁜􀀭􀀬􀀞􀀉􀀍􀀒 􀌬􀇡􀃙
􀇻􀁠
􀀍􀀒􀀊 11.16. Q: 在 C++ 源码中如何书写 UTF-8 字符串字面量？
􀀙􀀖 􀅐􀈥􀂬􀅦􀂬􀉵􀌭􀂛􀌺􀋭􀂁􀄲􀍦􀎑􀎍􀇄􀈗􀍴 􀀙􀀫􀀛􀀡􀀡 􀅔􀊠􀁴􀂠􀂔􀎀􀅅􀉵􀋍􀌌􀇻􀇢􀆏􀌯􀃇􀎍􀍒􀅰
􀁩􀅕􀄴􀍡􀍿􀁠
􀅐􀈥􀂬􀌸􀆻􀅸􀃇􀉤􀈻􀅔􀊠􀎍􀂬􀄏􀂙􀇜􀅐􀁨􀈁􀉆􀂼􀁠􀄴􀀁􀀛􀀇􀀇􀀍􀀍􀀁􀁳􀂬􀄏􀂙􀎔
u8"∃y ∀x ¬(x ≺ y)"
􀅦􀁩􀇳􀇚􀎗􀁇􀀔􀎘􀉵􀋅􀌌􀄫􀂬􀄏􀂙􀂿􀌹􀈫􀊅􀋅􀊂􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀃶􀃁􀎔
"\xE2\x88\x83y \xE2\x88\x80x \xC2\xAC(x \xE2\x89\xBA y)"
􀉟􀋑􀈕􀉺􀇧􀉵􀈁􀆗􀅰􀈎􀃿􀈫􀁿􀃑􀅔􀊠􀁴􀎍􀆋􀅪􀉖􀇽􀂛􀂴􀅕􀁶􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀋅􀊂􀎔
"∃y ∀x ¬(x ≺ y)"
􀁩􀆌􀉵􀈎􀎍􀀥􀀫􀀮􀀛 􀂠􀅪􀃋􀌬􀁶􀈧􀂉 􀀙􀀦􀀫􀀡 􀂘􀊂􀍸􀎍􀂔􀋑􀇠􀄸􀅔􀊠􀁴􀁠􀅪􀇽􀂛􀅕􀁶无BOM􀉵
􀀭􀀬􀀞􀀉􀀔 􀄏􀂙􀋻􀃓􀁠􀀥􀀫􀀮􀀛 􀂠􀋿􀁶􀇽􀂛􀅽􀊻􀄴􀈷􀊆􀉵􀂘􀊂􀍸􀎍􀅰􀁩􀂠􀊈􀂬􀉵􀅔􀊠􀁴􀁠􀎋􀌌􀋐
􀉈􀎔􀄴 􀀜􀀚􀀛􀀫 􀁨􀈄􀇷􀎍􀌍􀌍􀄴􀊥􀂨􀁳􀇽􀁨􀌲􀃘 "井\n" 􀁠􀎌􀉟􀋑􀎍􀌹􀈫􀅰􀈄􀉆􀂮􀉮 􀀭􀁁􀀼􀀶􀁂􀀷􀀸
􀈪􀌊􀊠􀄤􀅤􀅔􀊠􀁴􀅔􀍵􀍚􀂁􀎋􀄅􀈷􀂬􀁽􀁩􀂠􀉮􀎌􀁠
􀀍􀀓􀀊 11.17. Q: 我有个基于char 的大型Windows 应用程序。使其支持Unicode 最
简单的方法是什么？
􀂴􀉱􀌹􀂉 􀀶􀀻􀀴􀁄􀁠􀅝􀁹 UNICODE 􀄤 _UNICODE 􀎍􀌹􀈫􀆫􀂁􀂮􀉮 narrow() 􀀋 widen() 􀉵􀆸􀃔
􀅰􀂠􀈗􀋅􀌌􀍝􀌓􀁠􀎋􀄴 􀀮􀀼􀁅􀁇􀀴􀀿 􀀫􀁆􀁇􀀷􀀼􀁂 􀁳􀃯􀁧􀎗使用Unicode 字符集􀎘􀍁􀍹􀎌􀇋􀃘􀇄􀈗􀉮􀃥
fstream 􀄤 fopen() 􀉵􀄵􀈁􀎍􀇵􀆿􀁧􀌽􀉵􀅤􀅔􀊠􀍙􀌯􀁠􀌹􀈫􀅰􀄽􀈜􀅚􀆿􀂁􀁠
􀅐􀈥􀂬􀉮􀃥􀂁􀁩􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀊡􀁦􀈁􀆏􀎍􀂯􀅐􀅘􀂠􀃿􀈫􀅪􀇽􀂛􀄗􀅔􀊠􀁴􀂡􀍄􀊽
fopen() 􀎍􀂬􀆤􀉮􀁧􀌽􀂿 GetShortPathName() 􀌹􀈫􀉵􀅹􀎏􀈢􀈔􀂘􀋻􀃓􀁠
􀀍􀀔􀀊 11.18. Q: Python 呢？我听说他们为更好支持Unicode，在v3.3 改进了不
少。
􀀙􀀖 􀅈􀈲􀈎􀄜􀎍􀁩􀌵􀂖􀂚􀁩􀆩􀅈􀌢􀄡􀇏􀁽􀋗􀇳􀇚􀆤􀈓􀅏􀁠􀄴 􀀛􀀨􀁋􀁆􀀻􀁂􀁁 􀁈􀀏􀀊􀀏 􀄁􀋏􀅞􀉪􀁳􀎍􀂖􀂚
􀇵􀂁􀃎􀍓􀅔􀊠􀁴􀋯􀊊􀈁􀉆􀁠􀃿􀈢􀉵 􀀭􀀬􀀞􀀉􀀍􀀒􀎍􀈬􀇢􀅔􀊠􀁴􀅞􀍦􀃎􀅣􀎍􀇡􀆿􀂁􀁦􀊑􀄏􀋗􀉵􀋅􀊂
􀎋􀀡􀀫􀀧􀀉􀀔􀀔􀀑􀀕􀀉􀀍􀁟􀀭􀀛􀀫􀀉􀀎 􀇁 􀀭􀀛􀀫􀀉􀀐􀎌􀁠􀄴􀅔􀊠􀁴􀁳􀃪􀃇􀁣􀁲􀍴 􀀙􀀫􀀛􀀡􀀡 􀇁􀍴 􀀚􀀥􀀨 􀅔􀊠􀎍􀆅􀆅􀂠
􀂮􀇼􀁲􀅔􀊠􀁴􀋱􀍮􀆗􀌬􀇡􀁶􀃤􀉵􀋅􀊂􀁠􀋙􀈜􀆋􀁩􀊀􀍎􀅔􀊠􀁴􀃎􀍓􀉵􀅞􀍦􀋅􀊂􀁠􀌹􀈫􀉵􀌆􀋾􀈜
􀈢􀈎􀁶􀂁􀂟􀎑􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀊂􀂦􀉵索引操作􀁠􀉟􀋑􀅦􀅈􀍓􀃛􀉮􀍅􀈢􀌔􀎍􀇀􀂚􀋿􀁶􀅦􀊂􀂦􀎓􀋑
􀁩􀈎􀅔􀊰􀋌􀎓􀉵􀋾􀇻􀇁􀊱􀆘􀆋􀁩􀍙􀋵􀁠􀇢􀇀􀂚􀇄􀊀􀎍􀀨􀁋􀁆􀀻􀁂􀁁 􀁩􀇳􀇚􀅔􀊰􀋌􀉵􀋾􀇻􀇁􀊱
􀆘􀁠
􀄮􀈸􀎍􀇀􀂚􀄅􀅦􀎆􀉶􀎑􀅂􀉫􀅔􀊠􀁴􀎍􀇩􀋧􀃎􀍓􀍖􀉮 􀀭􀀬􀀞􀀉􀀔 􀈢􀋯􀊊􀅔􀊠􀁴􀎍􀁬􀄴 􀀙􀀨􀀡 􀁳􀉺􀇧
􀈒􀍳 􀀭􀀬􀀞􀀉􀀔 􀉵􀋯􀊊􀁠􀀨􀁋􀁆􀀻􀁂􀁁 􀄴􀈸􀈴􀇵􀌺􀁺􀃧􀎍􀅔􀊠􀁴􀊱􀆘􀇱􀂫􀋾􀇻􀉵􀈎􀋅􀊂􀃶􀃁􀋑􀁩􀈎􀊂
􀂦􀁠􀌹􀈫􀈜􀄏􀂙􀊥􀎑􀅞􀉪􀁬􀇬􀃲􀆰􀋗􀎍􀈿􀅐􀋙􀈜􀉮􀂅􀅂􀉫 􀀯􀀸􀀵 􀈊􀁠􀀯􀀸􀀵 􀁧􀉵􀇽􀈜􀅈􀅆􀅽􀊻
􀈎 􀀭􀀬􀀞􀀉􀀔 􀋅􀊂􀎍􀋞􀂮 􀀨􀁋􀁆􀀻􀁂􀁁 􀋅􀊕􀌒􀋽􀄴􀈘􀃫􀊞􀈓􀁶􀍀􀉮􀁠􀂬􀄏􀋗􀂠􀋿􀁶􀌹􀈎􀍥􀈶􀋙􀈜􀊕􀆎
􀄠􀍝􀃜􀅔􀊠􀁴􀉵􀅙􀃈􀇪􀈂􀎍􀂥􀍝􀇎􀅔􀊰􀋌􀃜􀇾􀁩􀁽􀆣􀃹􀍫􀁸􀎖 􀃺􀂮 􀀨􀁋􀁆􀀻􀁂􀁁 􀉪􀄴􀅽􀊻􀅚􀃈􀇳
􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀂁􀎍􀂥􀈎􀇀􀂚􀋿􀁶􀌹􀁲􀅬􀈗􀃽􀄑􀎐􀋲􀉵􀉪􀂘􀎑􀅹􀎏􀆐􀌐􀄴􀇽􀈜􀅂􀉫􀈁􀍵􀂼􀆤􀈓
􀅏􀁠
􀀛􀀨􀁋􀁆􀀻􀁂􀁁 􀁺􀅅􀎍􀀢􀀨􀁋􀁆􀀻􀁂􀁁 􀄤 􀀡􀁄􀁂􀁁􀀨􀁋􀁆􀀻􀁂􀁁 􀂱􀌣􀂅􀇈􀊧􀆉􀄐􀎋􀃛􀃤􀈎 􀀢􀀴􀁈􀀴 􀄤 􀀊􀀦􀀝􀀬􀎌􀁩􀆌􀍁
􀇖􀉵􀅔􀊠􀁴􀋅􀊂􀁠􀇄􀂙􀆩􀍺􀉤􀃤􀃉􀉠􀂘􀉫􀅦􀍡􀍿􀁠
􀀍􀀕􀀊 11.19. Q: 但是为什么用std::string ？做一个支持UTF-8 的字符串类难道不
是面向对象的更好方案吗？
􀀙􀀖 􀆋􀍴􀈾􀁣􀈼􀅔􀊠􀁴􀉻􀃉􀉵􀂘􀊂􀍔􀉑􀄃􀃥􀅔􀊠􀁴􀉵􀅂􀉫􀄤􀇽􀈜􀉵􀎄􀌈􀁠􀇽􀂛􀅄􀃦􀊕􀆎􀄍􀍲􀋵
􀉮􀁣􀁲􀊥􀃶􀉵􀅔􀋡􀋄􀃒􀃱􀃺􀄏􀇧􀄈 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀇽􀂛􀄗􀆋􀂡􀍄􀊽􀇽􀂛 􀀡􀀧 􀂯􀊕􀁠􀅐􀈥􀂬􀇇􀊦􀌆􀋾
􀁣􀁲􀇧􀄈􀅔􀊠􀁴􀉵􀊕􀆎􀆏􀎍􀄍􀋵􀉮􀊥􀃶􀁟􀈪􀃕􀁬􀌮􀍚􀉵 std::string 􀅰􀅏􀁠􀄌􀁣􀈁􀍵􀎍􀍙
􀈀􀄆􀈋􀁣􀁲􀈀􀅔􀊠􀁴􀊪􀎍􀉟􀄘􀍋􀉿􀈾􀁲􀂏􀍔􀉮􀂬􀉵􀉤􀃦􀇧􀄊􀈎􀁩􀅦􀉵􀁠􀆜􀉟􀎍􀅐􀈥􀈧􀂏􀁩􀂑
􀂑􀍲􀋵􀈢􀄭􀂡􀍄􀅔􀊠􀁴􀎍􀅰􀆐􀌐􀉮􀄕􀍀􀉵􀇽􀈜􀅂􀉫􀅹􀎏􀁠􀉟􀋑􀎍􀊐􀇌 􀀫􀀬􀀤 􀉵􀅣􀄫􀀋􀊦􀉆􀃛􀊏
􀉵􀊬􀊋􀎍􀌹􀈫􀉵􀅹􀎏􀈕􀅏􀄤􀎏􀂨􀉮􀄧􀁲􀊪􀈄􀃉􀁠􀂃􀅞􀁧􀎍􀌸􀈗􀂉􀂏􀋿􀁶 std::string 􀉵􀇧
􀄊􀌵􀂅􀋛􀋕􀎍􀅈􀍓􀃛􀃩􀋗􀆐􀌐􀂔 std::string 􀊪􀍘􀊔􀃘􀈢􀁠
􀀎􀀌􀀊 11.20. Q: 我已经在用这种方法了。我希望我们的展望成真。我应该怎么办呢？
􀀙􀀖􀀁􀄀􀂡􀇰􀊎􀍷􀄜􀁠
􀍙􀅟􀂬􀉵􀂘􀊂􀎍􀉽􀉽􀄧􀁲􀆏􀄴􀌨􀆉􀄐􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀂘􀊂􀁳􀂮􀉮􀌁􀂬􀈕􀁶􀅌􀉳􀁠􀊽􀍒􀁲􀆏􀉵
􀂫􀋐􀆕􀁣􀆙 􀀵􀁇􀀺 􀇑􀄟􀃶􀁠􀅐􀈥􀂬􀈎 􀀛 􀇁 􀀛􀀇􀀇 􀊕􀆎􀆏􀂫􀋐􀎍􀉮 char* 􀄤 std::string 􀎍􀎇
􀋿􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀋅􀊂􀎍􀆋􀁬􀇕􀊿􀇳􀇚􀀁􀀙􀀦􀀫􀀡􀀁􀂘􀊂􀍸􀎓􀄮􀁶􀌹􀁯􀋴􀈜􀈢􀅰􀁩􀇳􀇚􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀁠
􀅐􀈥􀂬􀈎􀆦􀌭􀄠􀅹􀎍􀌕􀇩􀌺􀇳􀇚􀆋􀅞􀉪 CP_UTF8 􀂫􀁶􀊛􀀁􀀙􀀨􀀡􀀁􀂘􀊂􀍸􀁠
􀌺􀁣􀈹􀉵􀆻􀉆􀎔
􀁞 􀁶􀆅􀋶􀉵􀊡􀁦􀈁􀆏􀎋􀅐 􀀨􀁇􀀺􀀼􀀰􀀥􀀤􀁟􀀤􀀼􀀵􀀬􀀡􀀞􀀞 􀊢􀎌􀂼 􀀭􀀬􀀞􀀉􀀔 􀇳􀇚􀎍􀆋􀃟􀆔􀁣􀁲􀂕􀆏􀈢􀇶􀈸􀊪
􀋮􀁤􀁠􀌹􀂉􀆏􀈎􀉮􀈪􀃕􀀁􀀛􀀁􀌒􀋽􀃑􀉵􀎍􀆋􀁩􀄴􀁻􀀁􀀯􀀼􀁁􀀷􀁂􀁉􀁅􀁠
􀁞 􀁶 􀀯􀀼􀁁􀀷􀁂􀁉􀁅 􀃟􀆔􀁣􀁲􀈪􀃕􀆏􀃙􀇻􀎋􀅐 fopen() 􀎌􀁟main() 􀄤􀃈􀅳􀉩􀄿􀄉􀍚􀉵􀍛􀇧􀈊􀋮
􀁤􀎍􀉮􀈢􀂼􀄁􀇻􀌬􀇡􀁠
12. 关于作者
􀈜􀅠􀋽􀉵􀂫􀋐􀈎 􀀨􀀴􀁈􀀸􀀿 􀀪􀀴􀀷􀁌􀀼􀁈􀀼􀀿􀁂􀁈􀁅􀀾􀁋􀁟􀀱􀀴􀀾􀁂􀁈 􀀟􀀴􀀿􀀾􀀴 􀄤 􀀫􀀿􀀴􀁈􀀴 􀀦􀁂􀁈􀀺􀁂􀁄􀁂􀀷􀁂􀁈􀁠􀌹􀈎􀇀􀂚􀄽
􀂅􀊻􀎄􀄤􀉪􀅞􀁳􀊕􀆎􀄠􀅦􀂅 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉥􀁨􀉾􀈷􀉵􀍝􀌓􀎍􀍌􀃥􀉾􀈷􀉵􀄯􀍯􀉵􀊼􀈑􀁠􀇀􀂚􀉵􀉹􀉵
􀈎􀄣􀄓􀃪􀉒􀅦􀇽􀈜􀍡􀍿􀉵􀋿􀌊􀎍􀁶􀁮􀉰􀍨􀂧􀍵􀄙 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀋅􀊕􀉵􀍯􀆒􀇐􀊄􀆘􀉧􀎍􀈕􀊺􀇬􀃲􀅹
􀊕􀆀􀂼􀃘􀉵􀊕􀆎􀉵􀉮􀇃􀂨􀎄􀁠􀇀􀂚􀁪􀀁􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀋒􀉸􀈄􀃉􀁠
􀉤􀃤􀆽􀌚 􀀟􀀿􀀸􀁁􀁁 􀀤􀀼􀁁􀀷􀀸􀁄􀁀􀀴􀁁 􀇬􀂰􀃉􀂅 􀀨􀁋􀁆􀀻􀁂􀁁 􀉵􀂵􀆲􀎍􀀥􀀴􀁄􀀾􀁇􀁅 􀀣􀁐􀁁􀁁􀀸􀁟􀀢􀀸􀀿􀀿􀀸 􀀟􀀸􀀸􀁄􀁆􀁅􀁟􀀤􀀴􀁌􀁋􀀁􀀪􀁇􀀼􀀁􀄤􀀁􀀢􀀴􀁁􀀁􀀪􀁐􀀸􀀺􀀺􀀁􀄅􀎁􀌹􀊨􀇽􀈰􀉵􀋇􀍬􀄤􀇙􀃑􀍝􀌓􀁠
􀈜􀇽􀅈􀍓􀃛􀉚􀆽􀈢􀉖􀂅 􀀫􀁆􀀴􀀶􀀾􀀧􀁈􀀸􀁄􀎈􀁂􀁉 􀁧 􀀙􀁄􀁆􀁋􀁂􀁀 􀀚􀀸􀀼􀀿􀀼􀁅 􀆘􀄆􀉵􀌀􀌅􀎍􀂖􀈎 􀀚􀁂􀁂􀁅􀁆􀀊􀀤􀁂􀀶􀀴􀀿􀀸
􀉵􀂫􀋐􀁠􀌸􀈗􀂉􀉚􀆽􀈢􀉖􀂅 􀀮􀀼􀁅􀀼􀁂􀁁􀀥􀀴􀁃 􀉵􀆕􀄆􀊳􀅝􀂙􀄃􀀁􀀥􀀼􀀶􀀻􀀴􀀸􀀿􀀁􀀠􀀴􀁄􀁆􀀿􀀁􀉵 􀁆􀀴􀁇􀀷􀀴􀁋􀀊􀁂􀁄􀀺􀁠
13. 译者注
􀌁􀆐􀉮􀊕􀆎􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈎􀁩􀄏􀍥􀇝􀉵􀉘􀉍􀁠􀉟􀋑􀂈􀉋􀉵􀌄􀅆􀌭􀂛􀆕􀄆􀋐􀆋􀉄􀈗􀆼􀌊􀃥
􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀄤 􀀭􀀬􀀞􀀉􀀔 􀉵􀍙􀋵􀆰􀎍􀃦􀍉􀃘􀆣􀅆􀄴􀍴􀈜􀄳􀌒􀋽􀌆􀅝􀁨􀂠􀅷􀉕􀉵􀆐􀉮􀊕􀆎􀁠􀌪􀁶􀂈
􀉋􀂏􀎍􀇀􀂚􀈓􀆐􀆜􀌁􀋜􀅼􀉵􀌒􀋽􀄴􀂆􀋒􀋈􀈊􀂘􀆤􀃥􀂡􀇌􀁠􀉟􀋑􀅦 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀉵􀈄􀊀􀉬􀋝􀄴􀊌􀅡
􀁨􀁣􀂘􀎔􀅫􀅖􀌗􀈜􀁣􀌴􀉛􀋎􀉿􀎗􀇀􀂚􀈗 􀀓 􀁥􀅆􀁲􀉃􀅔􀎘􀎍􀁣􀌴􀇺􀋔􀉿􀅏􀅎􀉵􀅗􀅓􀂚􀎗􀁣􀁲􀉃
􀅔􀃸􀀁􀀎􀀁􀅔􀋡􀎘􀁠
􀇀􀂚􀆁􀈙􀌁􀌖􀋐􀊀􀍎􀎍􀉪􀄴􀈎􀈊􀂸􀇐􀆖􀍧􀈈􀉵􀍝􀌓􀋷􀆭􀂁􀁠􀇳􀇚 􀀭􀁁􀀼􀀶􀁂􀀷􀀸 􀈁􀄏􀅈􀆆􀇬􀃲􀉮􀇃
􀂨􀎄􀁠􀇀􀂚􀆔􀌂􀍁􀇖􀀁􀀭􀀬􀀞􀀉􀀔􀀁􀋑􀁩􀈎􀀁􀀭􀀬􀀞􀀉􀀍􀀒􀁟􀀟􀀚􀀣􀀁􀇁􀀁􀀟􀀚􀀍􀀔􀀌􀀏􀀌􀀁􀂫􀁶􀆐􀉮􀊕􀆎􀉵􀎇􀋿􀋅􀊂􀁠
􀆽􀌚􀂙􀁨􀌌􀋐􀎔
􀁛 􀀫􀁆􀀴􀁄􀀁􀀚􀁄􀀼􀀿􀀿􀀼􀀴􀁁􀁆
􀁛 􀀜􀀼􀁁􀀺􀁋􀁇􀀴􀁁􀀁􀀯􀀴􀁁􀀺
􀁛 􀀠􀁂􀁉􀀴􀁄􀀷􀀁􀀰􀀼􀀴􀁂
􀁛 􀀢􀀴􀁀􀀸􀁅􀀁􀀫􀁉􀀼􀁁􀀸􀁅􀁂􀁁
􀁛 􀀣􀀸􀁊􀁋􀀁􀀚􀀼􀁅􀀶􀁇􀀼􀁆
􀅐􀈥􀆷􀅦􀈜􀌌􀇽􀉵􀍏􀌋􀍉􀄋􀈗􀂜􀂩􀆼􀋶􀇁􀆔􀌂􀎍􀌕􀌇􀍡􀈜􀋍􀌌􀍹􀉹􀉵 􀀟􀀼􀁆􀀠􀁇􀀵 􀂕􀆏􀎍􀍇􀌵􀇬
􀂋􀀁􀀟􀀼􀁆􀀠􀁇􀀵􀀁􀀼􀁅􀁅􀁇􀀸􀀁􀉵􀈁􀆗􀁪􀇀􀂚􀄇􀆤􀋒􀊯􀁠
14. 延伸阅读
􀁛 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀋒􀉸􀎋􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀈪􀃕􀀈 􀀨􀀜􀀞􀎌
􀁛 􀀭􀁁􀀼􀀶􀁂􀀷􀀸􀀁􀄲􀍦􀎑􀊷􀂛 􀀅􀀡􀀛􀀭􀀆
􀁛 􀀚􀁂􀁂􀁅􀁆􀀊􀀤􀁂􀀶􀀴􀀿􀀸􀎓􀀛􀀇􀀇􀀁􀉵􀎅􀌠􀍚􀈜􀄵􀎑􀈁􀈯􀁠
􀁛 􀀙􀁄􀁆􀁋􀁂􀁀􀀁􀀚􀀸􀀼􀀿􀀼􀁅􀀁􀄴􀀁􀀫􀁆􀀴􀀶􀀾􀀧􀁈􀀸􀁄􀎈􀁂􀁉􀀁􀁧􀇬􀍡􀎗􀀭􀀬􀀞􀀉􀀍􀀒􀀁􀈗􀅡􀄚􀎖􀎘
􀁛 􀀬􀁉􀀼􀁆􀁆􀀸􀁄􀀁􀅐􀂩􀋾􀇻􀅔􀊠
15. 反馈
􀂬􀄏􀂙􀄴 􀀞􀀴􀀶􀀸􀀵􀁂􀁂􀀾 􀀭􀀬􀀞􀀉􀀔 􀀝􀁈􀀸􀁄􀁋􀁉􀀻􀀸􀁄􀀸 􀁷􀍸􀁧􀉱􀁨􀌉􀌅􀄤􀄅􀎁􀁠􀇀􀂚􀍴􀆅􀆽􀌚􀂬􀉵􀆄􀃭􀄤
􀄅􀎁􀁠
􀈿􀉤􀅾􀇟􀈵􀎔􀀍􀀭􀀬􀀞􀀔􀀺􀀩􀁀􀁈􀀛􀀻􀀩􀀐􀀥􀁉􀀭􀀠􀀬􀀒􀀰􀁀􀁋􀀷􀀽􀀭􀁆􀀕􀀬􀁅􀁇􀀜􀀪􀁁
􀇟􀈵􀅪􀉮􀂅􀊃􀊘􀄤􀇩􀆍􀂃􀁮􀁠
􀃿􀇽􀈓􀈀􀈊􀍢􀀖􀀁􀀎􀀌􀀍􀀒􀀉􀀌􀀓􀀉􀀍􀀕
􀌌􀇽􀈓􀈀􀈊􀍢􀀖􀀁􀀎􀀌􀀍􀀒􀀉􀀌􀀕􀀉􀀍􀀓