ANSI Code Page for Windows System Locale with Identifier Constants and Strings

本文介绍Windows系统中如何通过更改系统语言环境来正确显示非Unicode应用程序中的文本。提供了不同语言环境对应的ANSI代码页列表,帮助开发者解决字符乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ANSI Code Page for Windows System Locale with Identifier Constants and Strings
In Windows operating system, system locale is the language that is used to display the text in menus and dialog boxes for programs that do not use Unicode. By changing system language locale which is normally set to same language as Windows itself to application’s native language, the garbled and gibberish text displayed can be shown properly if the correct locale code page is selected.

However, Windows just list the locale or display language available in common human term such as English (United States), English (Australia), Chinese (Taiwan), Chinese (PRC), Chinese (Hong Kong S.A.R.), Arabic (Egypt), Arabic (Iraq), Arabic (U.A.E), Hebrew (Israel), and etc. There is no other information especially ANSI codepage which programmers or advanced users may find useful when attempting to convert between ANSI non-Unicode language codepage or try to get foreign language to display readable characters properly in music player playlists without resorting to Microsoft AppLocale (Guide: how to install AppLocale in Vista).

The following table provides by Microsoft listed all supported locale identifier in Windows 95, 98, Me, NT 4.0, 2000, XP, 2003, Vista and possibly most future releases. The table includes the corresponding locale, the locale name, an associated script, and the default ANSI code page for the locale.

Locale identifier Locale Locale name Script tag ANSI code page
0×0436 Afrikaans (South Africa) af-ZA Latn 1252
0×041c Albanian (Albania) sq-AL Latn 1252
0×0484 Windows Vista and later: Alsatian (France) gsw-FR    
0×045e Windows Vista and later: Amharic (Ethiopia) am-ET   Unicode only
0×1401 Arabic (Algeria) ar-DZ Arab 1256
0×3c01 Arabic (Bahrain) ar-BH Arab 1256
0×0c01 Arabic (Egypt) ar-EG Arab 1256
0×0801 Arabic (Iraq) ar-IQ Arab 1256
0×2c01 Arabic (Jordan) ar-JO Arab 1256
0×3401 Arabic (Kuwait) ar-KW Arab 1256
0×3001 Arabic (Lebanon) ar-LB Arab 1256
0×1001 Arabic (Libya) ar-LY Arab 1256
0×1801 Arabic (Morocco) ar-MA Arab 1256
0×2001 Arabic (Oman) ar-OM Arab 1256
0×4001 Arabic (Qatar) ar-QA Arab 1256
0×0401 Arabic (Saudi Arabia) ar-SA Arab 1256
0×2801 Arabic (Syria) ar-SY Arab 1256
0×1c01 Arabic (Tunisia) ar-TN Arab 1256
0×3801 Arabic (U.A.E.) ar-AE Arab 1256
0×2401 Arabic (Yemen) ar-YE Arab 1256
0×042b Windows 2000 and later: Armenian (Armenia) hy-AM Armn Unicode only
0×044d Windows Vista and later: Assamese (India) as-IN   Unicode only
0×082c Azeri (Azerbaijan, Cyrillic) az-Cyrl-AZ Cyrl 1251
0×042c Azeri (Azerbaijan, Latin) az-Latn-AZ Latn 1254
0×046d Windows Vista and later: Bashkir (Russia) ba-RU    
0×042d Basque (Basque) eu-ES Latn 1252
0×0423 Belarusian (Belarus) be-BY Cyrl 1251
0×0445 Windows XP SP2 and later: Bengali (India) bn-IN Beng Unicode only
0×201a Windows XP SP2 and later (downloadable); Windows Vista and later: Bosnian (Bosnia and Herzegovina, Cyrillic) bs-Cyrl-BA Cyrl 1251
0×141a Windows XP SP2 and later: Bosnian (Bosnia and Herzegovina, Latin) bs-Latn-BA Latn 1250
0×047e Breton (France) br-FR Latn 1252
0×0402 Bulgarian (Bulgaria) bg-BG Cyrl 1251
0×0455 Not supported: Burmese      
0×0403 Catalan (Catalan) ca-ES Latn 1252
0×0c04 Chinese (Hong Kong SAR, PRC) zh-HK Hant 950
0×1404 Windows 98/Me, Windows XP and later: Chinese (Macao SAR) zh-MO Hant 950
0×0804 Chinese (PRC) zh-CN Hans 936
0×1004 Chinese (Singapore) zh-SG Hans 936
0×0404 Chinese (Taiwan) zh-TW Hant 950
  Windows Vista and later: Corsican (France) co-FR    
0×101a Windows XP SP2 and later: Croatian (Bosnia and Herzegovina, Latin) hr-BA Latn 1250
0×041a Croatian (Croatia) hr-HR Latn 1250
0×0405 Czech (Czech Republic) cs-CZ Latn 1250
0×0406 Danish (Denmark) da-DK Latn 1252
0×048c Windows XP and later: Dari (Afghanistan) gbz-AF Arab 1256
0×0465 Windows XP and later: Divehi (Maldives) dv-MV Thaa Unicode only
0×0813 Dutch (Belgium) nl-BE Latn 1252
0×0413 Dutch (Netherlands) nl-NL Latn 1252
0×0c09 English (Australia) en-AU Latn 1252
0×2809 English (Belize) en-BZ Latn 1252
0×1009 English (Canada) en-CA Latn 1252
0×2409 English (Caribbean) en-029 Latn 1252
0×4009 Windows Vista and later: English (India) en-IN Latn 1252
0×1809 English (Ireland) en-IE Latn 1252
0×2009 English (Jamaica) en-JM Latn 1252
0×4409 Windows Vista and later: English (Malaysia) en-MY Latn 1252
0×1409 English (New Zealand) en-NZ Latn 1252
0×3409 Windows 98/Me, Windows 2000 and later: English (Philippines) en-PH Latn 1252
0×4809 Windows Vista and later: English (Singapore) en-SG Latn 1252
0×1c09 English (South Africa) en-ZA Latn 1252
0×2c09 English (Trinidad and Tobago) en-TT Latn 1252
0×0809 English (United Kingdom) en-GB Latn 1252
0×0409 English (United States) en-US Latn 1252
0×3009 Windows 98/Me, Windows 2000 and later: English (Zimbabwe) en-ZW Latn 1252
0×0425 Estonian (Estonia) et-EE Latn 1257
0×0438 Faroese (Faroe Islands) fo-FO Latn 1252
0×0464 Windows XP SP2 and later (downloadable); Windows Vista and later: Filipino (Philippines) fil-PH Latn 1252
0×040b Finnish (Finland) fi-FI Latn 1252
0×080c French (Belgium) fr-BE Latn 1252
0×0c0c French (Canada) fr-CA Latn 1252
0×040c French (France) fr-FR Latn 1252
0×140c French (Luxembourg) fr-LU Latn 1252
0×180c French (Monaco) fr-MC Latn 1252
0×100c French (Switzerland) fr-CH Latn 1252
0×0462 Windows XP SP2 and later (downloadable); Windows Vista and later: Frisian (Netherlands) fy-NL Latn 1252
0×0456 Windows XP and later: Galician (Spain) gl-ES Latn 1252
0×0437 Windows 2000 and later: Georgian (Georgia) ka-GE Geor Unicode only
0×0c07 German (Austria) de-AT Latn 1252
0×0407 German (Germany) de-DE Latn 1252
0×1407 German (Liechtenstein) de-LI Latn 1252
0×1007 German (Luxembourg) de-LU Latn 1252
0×0807 German (Switzerland) de-CH Latn 1252
0×0408 Greek (Greece) el-GR Grek 1253
0×046f Windows Vista and later: Greenlandic (Greenland) kl-GL Latn 1252
0×0447 Windows XP and later: Gujarati (India) gu-IN Gujr Unicode only
0×0468 Windows Vista and later: Hausa (Nigeria, Latin) ha-Latn-NG Latn 1252
0×040d Hebrew (Israel) he-IL Hebr 1255
0×0439 Windows 2000 and later: Hindi (India) hi-IN Deva Unicode only
0×040e Hungarian (Hungary) hu-HU Latn 1250
0×040f Icelandic (Iceland) is-IS Latn 1252
0×0470 Igbo (Nigeria) ig-NG    
0×0421 Indonesian (Indonesia) id-ID Latn 1252
0×085d Windows XP and later: Inuktitut (Canada, Latin) iu-Latn-CA Latn 1252
0×045d Windows XP SP2 and later (downloadable); Windows Vista and later: Inuktitut (Canada, Syllabics) iu-Cans-CA Cans Unicode only
0×083c Windows XP SP2 and later (downloadable); Windows Vista and later: Irish (Ireland) ga-IE Latn 1252
0×0410 Italian (Italy) it-IT Latn 1252
0×0810 Italian (Switzerland) it-CH Latn 1252
0×0411 Japanese (Japan) ja-JP Hani;Hira;Kana 932
0×044b Windows XP and later: Kannada (India) kn-IN Knda Unicode only
0×043f Windows 2000 and later: Kazakh (Kazakhstan) kk-KZ Cyrl 1251
0×0453 Windows Vista and later: Khmer (Cambodia) kh-KH Khmr Unicode only
0×0486 Windows Vista and later: K’iche (Guatemala) qut-GT Latn 1252
0×0487 Windows Vista and later: Kinyarwanda (Rwanda) rw-RW Latn 1252
0×0457 Windows 2000 and later: Konkani (India) kok-IN Deva Unicode only
0×0812 Windows 95, Windows NT 4.0 only: Korean (Johab)      
0×0412 Korean (Korea) ko-KR Hang;Hani 949
0×0440 Windows XP and later: Kyrgyz (Kyrgyzstan) ky-KG Cyrl 1251
0×0454 Windows Vista and later: Lao (Lao PDR) lo-LA Laoo Unicode only
0×0426 Latvian (Latvia) lv-LV Latn 1257
0×0427 Lithuanian (Lithuania) lt-LT Latn 1257
0×082e Windows Vista and later: Lower Sorbian (Germany) dsb-DE Latn 1252
0×046e Windows XP SP2 and later (downloadable); Windows Vista and later: Luxembourgish (Luxembourg) lb-LU Latn 1252
0×042f Windows 2000 and later: Macedonian (Macedonia, FYROM) mk-MK Cyrl 1251
0×083e Windows 2000 and later: Malay (Brunei Darussalam) ms-BN Latn 1252
0×043e Windows 2000 and later: Malay (Malaysia) ms-MY Latn 1252
0×044c Windows XP SP2 and later: Malayalam (India) ml-IN Mlym Unicode only
0×043a Windows XP SP2 and later: Maltese (Malta) mt-MT Latn 1252
0×0481 Windows XP SP2 and later: Maori (New Zealand) mi-NZ Latn 1252
0×047a Windows XP SP2 and later (downloadable); Windows Vista and later: Mapudungun (Chile) arn-CL Latn 1252
0×044e Windows 2000 and later: Marathi (India) mr-IN Deva Unicode only
0×047c Windows XP SP2 and later (downloadable); Windows Vista and later: Mohawk (Canada) moh-CA Latn 1252
0×0450 Windows XP and later: Mongolian (Mongolia) mn-Cyrl-MN Cyrl 1251
0×0850 Windows Vista and later: Mongolian (PRC) mn-Mong-CN Mong Unicode only
 Nepali (India) ne-IN __ Unicode only
0×0461 Windows XP SP2 and later (downloadable); Windows Vista and later: Nepali (Nepal) ne-NP Deva Unicode only
0×0414 Norwegian (Bokmål, Norway) nb-NO Latn 1252
0×0814 Norwegian (Nynorsk, Norway) nn-NO Latn 1252
0×0482 Occitan (France) oc-FR Latn 1252
0×0448 Oriya (India) or-IN Orya Unicode only
0×0463 Windows XP SP2 and later (downloadable); Windows Vista and later: Pashto (Afghanistan) ps-AF    
0×0429 Persian (Iran) fa-IR Arab 1256
0×0415 Polish (Poland) pl-PL Latn 1250
0×0416 Portuguese (Brazil) pt-BR Latn 1252
0×0816 Portuguese (Portugal) pt-PT Latn 1252
0×0446 Windows XP and later: Punjabi (India) pa-IN Guru Unicode only
0×046b Windows XP SP2 and later: Quechua (Bolivia) quz-BO Latn 1252
0×086b Windows XP SP2 and later: Quechua (Ecuador) quz-EC Latn 1252
0×0c6b Windows XP SP2 and later: Quechua (Peru) quz-PE Latn 1252
0×0418 Romanian (Romania) ro-RO Latn 1250
0×0417 Windows XP SP2 and later (downloadable); Windows Vista and later: Romansh (Switzerland) rm-CH Latn 1252
0×0419 Russian (Russia) ru-RU Cyrl 1251
0×243b Windows XP SP2 and later: Sami (Inari, Finland) smn-FI Latn 1252
0×103b Windows XP SP2 and later: Sami (Lule, Norway) smj-NO Latn 1252
0×143b Windows XP SP2 and later: Sami (Lule, Sweden) smj-SE Latn 1252
0×0c3b Windows XP SP2 and later: Sami (Northern, Finland) se-FI Latn 1252
0×043b Windows XP SP2 and later: Sami (Northern, Norway) se-NO Latn 1252
0×083b Windows XP SP2 and later: Sami (Northern, Sweden) se-SE Latn 1252
0×203b Windows XP SP2 and later: Sami (Skolt, Finland) sms-FI Latn 1252
0×183b Windows XP SP2 and later: Sami (Southern, Norway) sma-NO Latn 1252
0×1c3b Windows XP SP2 and later: Sami (Southern, Sweden) sma-SE Latn 1252
0×044f Windows 2000 and later: Sanskrit (India) sa-IN Deva Unicode only
0×1c1a Windows XP SP2 and later: Serbian (Bosnia and Herzegovina, Cyrillic) sr-Cyrl-BA Cyrl 1251
0×181a Windows XP SP2 and later: Serbian (Bosnia and Herzegovina, Latin) sr-Latn-BA Latn 1250
0×0c1a Serbian (Serbia, Cyrillic) sr-Cyrl-CS Cyrl 1251
0×081a Serbian (Serbia, Latin) sr-Latn-CS Latn 1250
0×046c Windows XP SP2 and later: Sesotho sa Leboa/Northern Sotho (South Africa) ns-ZA Latn 1252
0×0432 Windows XP SP2 and later: Setswana/Tswana (South Africa) tn-ZA Latn 1252
0×045b Windows Vista and later: Sinhala (Sri Lanka) si-LK Sinh Unicode only
0×041b Slovak (Slovakia) sk-SK Latn 1250
0×0424 Slovenian (Slovenia) sl-SI Latn 1250
0×2c0a Spanish (Argentina) es-AR Latn 1252
0×400a Spanish (Bolivia) es-BO Latn 1252
0×340a Spanish (Chile) es-CL Latn 1252
0×240a Spanish (Colombia) es-CO Latn 1252
0×140a Spanish (Costa Rica) es-CR Latn 1252
0×1c0a Spanish (Dominican Republic) es-DO Latn 1252
0×300a Spanish (Ecuador) es-EC Latn 1252
0×440a Spanish (El Salvador) es-SV Latn 1252
0×100a Spanish (Guatemala) es-GT Latn 1252
0×480a Spanish (Honduras) es-HN Latn 1252
0×080a Spanish (Mexico) es-MX Latn 1252
0×4c0a Spanish (Nicaragua) es-NI Latn 1252
0×180a Spanish (Panama) es-PA Latn 1252
0×3c0a Spanish (Paraguay) es-PY Latn 1252
0×280a Spanish (Peru) es-PE Latn 1252
0×500a Spanish (Puerto Rico) es-PR Latn 1252
0×0c0a Spanish (Spain) es-ES Latn 1252
0×040a Spanish (Spain, Traditional Sort) es-ES_tradnl Latn 1252
0×540a Windows Vista and later: Spanish (United States) es-US    
0×380a Spanish (Uruguay) es-UY Latn 1252
0×200a Spanish (Venezuela) es-VE Latn 1252
0×0430 Not supported: Sutu      
0×0441 Windows 2000 and later: Swahili (Kenya) sw-KE Latn 1252
0×081d Swedish (Finland) sv-FI Latn 1252
0×041d Swedish (Sweden) sv-SE Latn 1252
0×045a Windows XP and later: Syriac (Syria) syr-SY Syrc Unicode only
0×0428 Windows Vista and later: Tajik (Tajikistan) tg-Cyrl-TJ Cyrl 1251
0×085f Windows Vista and later: Tamazight (Algeria, Latin) tmz-Latn-DZ Latn 1252
0×0449 Windows 2000 and later: Tamil (India) ta-IN Taml Unicode only
0×0444 Windows XP and later: Tatar (Russia) tt-RU Cyrl 1251
0×044a Windows XP and later: Telugu (India) te-IN Telu Unicode only
0×041e Thai (Thailand) th-TH Thai 874
0×0851 Windows Vista and later: Tibetan (Bhutan) bo-BT Tibt Unicode only
0×0451 Windows Vista and later: Tibetan (PRC) bo-CN Tibt Unicode only
0×041f Turkish (Turkey) tr-TR Latn 1254
0×0442 Windows Vista and later: Turkmen (Turkmenistan) tk-TM Cyrl 1251
0×0480 Windows Vista and later: Uighur (PRC) ug-CN Arab 1256
0×0422 Ukrainian (Ukraine) uk-UA Cyrl 1251
0×042e Windows Vista and later: Upper Sorbian (Germany) wen-DE Latn 1252
0×0820 Urdu (India) tr-IN    
0×0420 Windows 98/Me, Windows 2000 and later: Urdu (Pakistan) ur-PK Arab 1256
0×0843 Windows 2000 and later: Uzbek (Uzbekistan, Cyrillic) uz-Cyrl-UZ Cyrl 1251
0×0443 Windows 2000 and later: Uzbek (Uzbekistan, Latin) uz-Latn-UZ Latn 1254
0×042a Windows 98/Me, Windows NT 4.0 and later: Vietnamese (Vietnam) vi-VN Latn 1258
0×0452 Windows XP SP2 and later: Welsh (United Kingdom) cy-GB Latn 1252
0×0488 Windows Vista and later: Wolof (Senegal) wo-SN Latn 1252
0×0434 Windows XP SP2 and later: Xhosa/isiXhosa (South Africa) xh-ZA Latn 1252
0×0485 Windows Vista and later: Yakut (Russia) sah-RU Cyrl 1251
0×0478 Windows Vista and later: Yi (PRC) ii-CN Yiii Unicode only
0×046a Windows Vista and later: Yoruba (Nigeria) yo-NG    
0×0435 Windows XP SP2 and later: Zulu/isiZulu (South Africa)

<think>嗯,用户问的是如何在OLEDB中正确配置Locale Identifier(LCID)来支持区域设置。首先,我需要回忆一下OLEDB连接字符串的相关知识。记得在连接字符串中,可以通过特定的属性来设置LCID。 根据引用[3],OLE DB初始化属性可以通过连接字符串的关键字来设置,每个属性对应一个短名称。LCID应该对应某个特定的关键字,可能是“Locale Identifier”或者类似的名称。比如,可能使用“Locale”或“LCID”作为关键字。 然后,引用[2]提到不同语言的文档存储时,LCID决定了索引使用的语言。这说明在查询时,设置正确的LCID有助于语言相关的处理,比如排序规则或字符串比较。因此,在连接字符串中设置LCID可能影响这些区域相关的行为。 接下来,需要确认正确的关键字和语法。比如,是否在连接字符串中使用“Locale Identifier=xxxx”或者“LCID=xxxx”。可能需要查找OLE DB提供程序的文档,例如Microsoft的官方资料,找到对应的属性名称和有效的LCID值。 另外,引用[1]中的示例展示了如何通过连接字符串设置Mode属性,使用类似“Mode=ShareDenyRead|ShareDenyWrite”的方式。这提示LCID的设置可能也是类似的格式,即“关键字=值”。例如,“Locale Identifier=1033”表示英语(美国)。 但需要验证这个关键字是否正确。根据已有的知识,OLE DB的Locale Identifier属性可能对应的关键字是“Locale”或者“Locale Identifier”。比如,SQL Server的连接字符串中有时使用“Locale Identifier”,而其他提供程序可能不同。 另外,LCID的值是十进制的还是十六进制的?通常LCID在Windows中是十六进制,但在连接字符串中可能需要十进制。例如,英语(美国)的LCID是0x0409,十进制是1033,所以应该使用1033。 最后,需要给出一个示例连接字符串,并说明如何查找有效的LCID值,例如微软的官方文档或者LCID列表。同时,提醒用户不同数据提供程序可能有差异,建议查阅具体提供程序的文档。 总结步骤:确定关键字,正确格式,LCID值的十进制表示,示例,以及注意事项。</think>在OLEDB中配置Locale Identifier(LCID)需通过连接字符串指定区域属性,以下是具体步骤: ### 1. **确定LCID属性名称** - OLEDB使用`Locale Identifier`或缩写`LCID`作为关键字。例如: ```plaintext Provider=SQLOLEDB;Data Source=server;Locale Identifier=1033; ``` 或 ```plaintext Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\db.accdb;LCID=2052; ``` - 具体名称需参考不同数据提供程序的文档[^3]。 ### 2. **设置有效的LCID值** - LCID为十进制数值,例如: - 英语(美国):`1033` - 简体中文:`2052` - 日语:`1041` - 完整LCID列表可参考微软官方文档[^2]。 ### 3. **语法示例** ```plaintext Provider=SQLNCLI11;Server=.\SQLEXPRESS;Database=Test;Locale Identifier=2052; ``` 此配置将强制使用简体中文的排序规则和日期格式。 ### 4. **验证与注意事项** - **语言敏感操作**:设置后影响字符串比较、排序规则及错误消息语言[^2]。 - **兼容性**:不同提供程序(如SQLOLEDB vs. Microsoft.ACE.OLEDB)可能对LCID支持存在差异。 - **错误排查**:若区域设置未生效,检查LCID是否被数据源默认配置覆盖。 ### 示例完整连接字符串 ```plaintext Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data.mdb;Jet OLEDB:Database Password=123;Locale Identifier=1033; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值