📄 nls.cpp
字号:
int nResult ;
switch ( nCodePage ) {
case CP_MAC_EUROPEAN :
case CP_MAC_JAPANESE :
case CP_MAC_CHINESE_TRADITIONAL :
case CP_MAC_KOREAN :
case CP_MAC_ARABIC :
case CP_MAC_HEBREW :
case CP_MAC_GREEK :
case CP_MAC_CYRILLIC :
case CP_MAC_CHINESE_SIMPLIFIED :
case CP_MAC_ROMANIAN :
case CP_MAC_UKRAINIAN :
case CP_MAC_THAI :
case CP_MAC_CENTRAL_EUROPEAN :
case CP_MAC_ICELANDIC :
case CP_MAC_TURKISH :
case CP_MAC_CROATIAN :
nResult = 1 ; break ;
default :
nResult = 0 ; break ;
}
return nResult ;
}
// 戜榩偺屆偄僐乕僪儁乕僕偐偳偆偐
int IsTaiwanLegacyCodePage ( int nCodePage ) {
int nResult ;
switch ( nCodePage ) {
case CP_CHINESE_TRADITIONAL_CNS :
case CP_CHINESE_TRADITIONAL_TCA :
case CP_CHINESE_TRADITIONAL_ETEN :
case CP_CHINESE_TRADITIONAL_IBM5550 :
case CP_CHINESE_TRADITIONAL_TELETEXT :
case CP_CHINESE_TRADITIONAL_WANG :
nResult = 1 ; break ;
default :
nResult = 0 ; break ;
}
return nResult ;
}
// ISCII 僐乕僪儁乕僕偐偳偆偐
int IsCodePageIscii ( int nCodePage ) {
int nResult ;
switch ( nCodePage ) {
case CP_ISCII_DEVANAGARI :
case CP_ISCII_BENGALI :
case CP_ISCII_TAMIL :
case CP_ISCII_TELUGU :
case CP_ISCII_ASSAMESE :
case CP_ISCII_ORIYA :
case CP_ISCII_KANNADA :
case CP_ISCII_MALAYALAM :
case CP_ISCII_GUJARATHI :
case CP_ISCII_PANJABI :
nResult = 1 ; break ;
default :
nResult = 0 ; break ;
}
return nResult ;
}
// 僞儈儖岅梡 僐乕僪儁乕僕偐偳偆偐
int IsCodePageTamil ( int nCodePage ) {
int nResult ;
switch ( nCodePage ) {
case CP_TAMIL_TSCII :
case CP_TAMIL_TAM :
case CP_TAMIL_TAB :
nResult = 1 ; break ;
default :
nResult = 0 ; break ;
}
return nResult ;
}
// 僀儞僪彅尵岅偺僐乕僪儁乕僕偐偳偆偐
int IsCodePageIndic ( int nCodePage ) {
return IsCodePageIscii ( nCodePage ) || IsCodePageTamil ( nCodePage ) ;
}
// EBCDIC 偺僐乕僪儁乕僕偐偳偆偐
int IsCodePageEbcdic ( int nCodePage ) {
int nResult ;
switch ( nCodePage ) {
case CP_EBCDIC_US_CANADA :
case CP_EBCDIC_INTERNATIONAL :
case CP_EBCDIC_MULTILINGUAL :
case CP_EBCDIC_GREEK_MODERN :
case CP_EBCDIC_AIX_PAKISTAN :
case CP_EBCDIC_CYRILLIC :
case CP_EBCDIC_TURKISH :
case CP_EBCDIC_OPEN_EDITION_US :
case CP_EBCDIC_SYSTEM_390 :
case CP_EBCDIC_PERSIAN :
case CP_EBCDIC_PERSIAN_PC :
case CP_EBCDIC_LATVIA_LITHUANIA :
case CP_EBCDIC_ESTONIA :
case CP_EBCDIC_UKRAINE :
case CP_EBCDIC_AIX_UKRAINE :
case CP_EBCDIC_VIETNAMESE :
case CP_EBCDIC_LAO :
case CP_EBCDIC_DEVANAGARI :
case CP_EBCDIC_US_CANADA_EURO :
case CP_EBCDIC_GERMANY_EURO :
case CP_EBCDIC_DENMARK_NORWAY_EURO :
case CP_EBCDIC_FINLAND_SWEDEN_EURO :
case CP_EBCDIC_ITALY_EURO :
case CP_EBCDIC_SPAIN_EURO :
case CP_EBCDIC_UK_EURO :
case CP_EBCDIC_FRANCE_EURO :
case CP_EBCDIC_INTERNATIONAL_EURO :
case CP_EBCDIC_ICELANDIC_EURO :
case CP_EBCDIC_MULTILINGUAL_EUR :
case CP_EBCDIC_CYRILLIC_EURO :
case CP_EBCDIC_TURKEY_EURO :
case CP_EBCDIC_BALTIC_EURO :
case CP_EBCDIC_ESTONIA_EURO :
case CP_EBCDIC_UKRAINE_EURO :
case CP_EBCDIC_VIETNAMESE_EURO :
case CP_EBCDIC_GERMANY :
case CP_EBCDIC_DENMARK_NORWAY :
case CP_EBCDIC_FINLAND_SWEDEN :
case CP_EBCDIC_ITALY :
case CP_EBCDIC_SPAIN :
case CP_EBCDIC_UK :
case CP_EBCDIC_JAPANESE_KATAKANA :
case CP_EBCDIC_FRANCE :
case CP_EBCDIC_ARABIC :
case CP_EBCDIC_GREEK :
case CP_EBCDIC_HEBREW :
case CP_EBCDIC_KOREAN_EXTENDED :
case CP_EBCDIC_THAI :
case CP_EBCDIC_ICELANDIC :
case CP_EBCDIC_RUSSIAN :
case CP_EBCDIC_TURKISH2 :
case CP_EBCDIC_LATIN1_OPEN_SYSTEM :
case CP_EBCDIC_SERBIAN_BULGARIAN :
case CP_EBCDIC_JAPANESE_AND_KATAKANA :
case CP_EBCDIC_JAPANESE_AND_LATIN :
case CP_EBCDIC_JAPANESE_AND_US_CANADA :
case CP_EBCDIC_KOREAN_AND_KOREAN_EX :
case CP_EBCDIC_SIMPLIFIED_CHINESE :
case CP_EBCDIC_TRADITIONAL_CHINESE :
nResult = 1 ; break ;
default :
nResult = 0 ; break ;
}
return nResult ;
}
// 僔僗僥儉偺僐乕僪儁乕僕偑 HKSCS 偐偳偆偐
int IsOsCodePageHkscs ( void ) {
if ( GetACP () != CP_CHINESE_TRADITIONAL ) return 0 ;
return IsValidCodePageHkscs () ;
}
// HKSCS 偑桳岠側僐乕僪儁乕僕偐偳偆偐
int IsValidCodePageHkscs ( void ) {
if ( ! IsValidCodePage ( CP_CHINESE_TRADITIONAL ) ) return 0 ;
wchar_t szBuffer [ 2 ] ;
int nLen = MultiByteToWideChar ( CP_CHINESE_TRADITIONAL, 0, "\x9D\xF1", 2, szBuffer, 2 ) ;
if ( nLen == 1 && *szBuffer == 0x66F1 ) return 1 ;
return 0 ;
}
// CP_THREAD_ACP 偵懳墳偡傞僐乕僪儁乕僕傪曉偡
// 僄儔乕側傜 0 傪曉偡
int GetThreadACP ( void ) {
char szResult [ 0x10 ] ;
if ( GetLocaleInfo ( GetThreadLocale (), LOCALE_IDEFAULTANSICODEPAGE, szResult, 0x10 ) ) {
errno = 0 ;
int nResult = strtoul ( szResult, NULL, 10 ) ;
if ( ! errno && nResult >= 0x10 ) return nResult ;
}
return 0 ;
}
// Some compilers do not support
#ifndef LOCALE_IDEFAULTMACCODEPAGE
#define LOCALE_IDEFAULTMACCODEPAGE 0x00001011 /* default mac code page */
#endif
// CP_MACCP 偵懳墳偡傞僐乕僪儁乕僕傪曉偡
// 僄儔乕側傜 0 傪曉偡
int GetMacCP ( void ) {
char szResult [ 0x10 ] ;
if ( GetLocaleInfo ( LOCALE_USER_DEFAULT, LOCALE_IDEFAULTMACCODEPAGE, szResult, 0x10 ) ) {
errno = 0 ;
int nResult = strtoul ( szResult, NULL, 10 ) ;
if ( ! errno && nResult >= 0x10 ) return nResult ;
}
return 0 ;
}
//////////////////////////////
// 尵岅幆暿巕 //
//////////////////////////////
// 暥帤僙僢僩偐傜揔愗側尵岅幆暿巕傪曉偡
// 奩摉偡傞傕偺偑側偗傟偽 0 傪曉偡
int CharsetToLangId ( int nCharset ) {
int nLang ;
switch ( nCharset ) {
case ANSI_CHARSET : nLang = MAKELANGID ( LANG_ENGLISH, SUBLANG_ENGLISH_US ) ; break ;
case GREEK_CHARSET : nLang = MAKELANGID ( LANG_GREEK, SUBLANG_DEFAULT ) ; break ;
case RUSSIAN_CHARSET : nLang = MAKELANGID ( LANG_RUSSIAN, SUBLANG_DEFAULT ) ; break ;
case BALTIC_CHARSET : nLang = MAKELANGID ( LANG_ENGLISH, SUBLANG_ENGLISH_US ) ; break ;
case EASTEUROPE_CHARSET : nLang = MAKELANGID ( LANG_ENGLISH, SUBLANG_ENGLISH_US ) ; break ;
case TURKISH_CHARSET : nLang = MAKELANGID ( LANG_ENGLISH, SUBLANG_ENGLISH_US ) ; break ;
case SHIFTJIS_CHARSET : nLang = MAKELANGID ( LANG_JAPANESE, SUBLANG_DEFAULT ) ; break ;
case HANGUL_CHARSET : nLang = MAKELANGID ( LANG_KOREAN, SUBLANG_DEFAULT ) ; break ;
case GB2312_CHARSET : nLang = MAKELANGID ( LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED ) ; break ;
case CHINESEBIG5_CHARSET : nLang = MAKELANGID ( LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL ) ; break ;
case THAI_CHARSET : nLang = MAKELANGID ( LANG_THAI, SUBLANG_DEFAULT ) ; break ;
case VIETNAMESE_CHARSET : nLang = MAKELANGID ( LANG_VIETNAMESE, SUBLANG_DEFAULT ) ; break ;
case HEBREW_CHARSET : nLang = MAKELANGID ( LANG_HEBREW, SUBLANG_DEFAULT ) ; break ;
case ARABIC_CHARSET : nLang = MAKELANGID ( LANG_ARABIC, SUBLANG_DEFAULT ) ; break ;
default : nLang = 0 ; break ;
}
return nLang ;
}
// 巜掕偺尵岅幆暿巕偑 CJK 偐偳偆偐
int IsLangIdCjk ( int nLangId ) {
nLangId = PRIMARYLANGID ( nLangId ) ;
int nResult ;
switch ( nLangId ) {
case LANG_JAPANESE :
case LANG_KOREAN :
case LANG_CHINESE :
nResult = 1 ; break ;
default :
nResult = 0 ; break ;
}
return nResult ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -