Win32 API之Setlocale函数配置地域化信息函数
setlocale:
函数原形为:char *setlocale( int category, const char *locale );
头文件:<locale.h>
所支持的操作系统为:ANSI, Win 95, Win NT
对于简体中文可以使用如下设置:setlocale( LC_ALL, "chs" );
为什么一定要调用setlocale呢?
因为在C/C++语言标准中定义了其运行时的字符集环境为"C",也就是ASCII字符集的一个子集,那么mbstowcs在工作时会将cstr中所包含的字符串看作是ASCII编码的字符,而不认为是一个包含有chs编码的字符串,所以他会将每一个中文拆成2个ASCII编码进行转换,这样得到的结果就是会形成4个wchar_t的字符组成的串,那么如何才能够让mbstowcs正常工作呢?在调用mbstowcs进行转换之间必须明确的告诉mbstowcs目前cstr串中包含的是chs编码的字符串,通过setlocale( LC_ALL, "chs" )函数调用来完成,需要注意的是这个函数会改变整个应用程序的字符集编码方式,必须要通过重新调用setlocale( LC_ALL, "C" )函数来还原,这样就可以保证mbstowcs在转换时将cstr中的串看作是中文串,并且转换成为2个wchar_t字符,而不是4个。
- a.语言代码(Language Code)b.国家代码(Country Code)c.编码(Encoding)
- 本地名字可以用下面这些部分来构造:语言代码_国家代码.编码 比如(zh_CN.UTF-8, en_US等)
setlocale语言字符串参考
Primary language |
Sublanguage |
Language string |
---|---|---|
Chinese | Chinese | "chinese" |
Chinese | Chinese (simplified) | "chinese-simplified" or "chs" |
Chinese | Chinese (traditional) | "chinese-traditional" or "cht" |
Czech | Czech | "csy" or "czech" |
Danish | Danish | "dan" or "danish" |
Dutch | Dutch (default) | "dutch" or "nld" |
Dutch | Dutch (Belgian) | "belgian", "dutch-belgian", or "nlb" |
English | English (default) | "english" |
English | English (Australian) | "australian", "ena", or "english-aus" |
English | English (Canadian) | "canadian", "enc", or "english-can" |
English | English (New Zealand) | "english-nz" or "enz" |
English | English (United Kingdom) | "eng", "english-uk", or "uk" |
English | English (United States) | "american", "american english", "american-english", "english-american", "english-us", "english-usa", "enu", "us", or "usa" |
Finnish | Finnish | "fin" or "finnish" |
French | French (default) | "fra" or "french" |
French | French (Belgian) | "frb" or "french-belgian" |
French | French (Canadian) | "frc" or "french-canadian" |
French | French (Swiss) | "french-swiss" or "frs" |
German | German (default) | "deu" or "german" |
German | German (Austrian) | "dea" or "german-austrian" |
German | German (Swiss) | "des", "german-swiss", or "swiss" |
Greek | Greek | "ell" or "greek" |
Hungarian | Hungarian | "hun" or "hungarian" |
Icelandic | Icelandic | "icelandic" or "isl" |
Italian | Italian (default) | "ita" or "italian" |
Italian | Italian (Swiss) | "italian-swiss" or "its" |
Japanese | Japanese | "japanese" or "jpn" |
Korean | Korean | "kor" or "korean" |
Norwegian | Norwegian (default) | "norwegian" |
Norwegian | Norwegian (Bokmal) | "nor" or "norwegian-bokmal" |
Norwegian | Norwegian (Nynorsk) | "non" or "norwegian-nynorsk" |
Polish | Polish | "plk" or "polish" |
Portuguese | Portuguese (default) | "portuguese" or "ptg" |
Portuguese | Portuguese (Brazilian) | "portuguese-brazil" or "ptb" |
Russian | Russian (default) | "rus" or "russian" |
Slovak | Slovak | "sky" or "slovak" |
Spanish | Spanish (default) | "esp" or "spanish" |
Spanish | Spanish (Mexican) | "esm" or "spanish-mexican" |
Spanish | Spanish (Modern) | "esn" or "spanish-modern" |
Swedish | Swedish | "sve" or "swedish" |
Turkish | Turkish | "trk" or "turkish" |
setlocale国家字符串参考
Country/Region | Country/Region string |
---|---|
Australia | "aus" or "australia" |
Austria | "aut" or "austria" |
Belgium | "bel" or "belgium" |
Brazil | "bra" or "brazil" |
Canada | "can" or "canada" |
China | "china", "chn", "pr china", or "pr-china" |
Czech Republic | "cze" or "czech" |
Denmark | "dnk" or "denmark" |
Finland | "fin" or "finland" |
France | "fra" or "france" |
Germany | "deu" or "germany" |
Greece | "grc" or "greece" |
Hong Kong SAR | "hkg", "hong kong", or "hong-kong" |
Hungary | "hun" or "hungary" |
Iceland | "iceland" or "isl" |
Ireland | "irl" or "ireland" |
Italy | "ita" or "italy" |
Japan | "jpn" or "japan" |
Korea | "kor" or "korea" |
Mexico | "mex" or "mexico" |
The Netherlands | "nld", "holland", or "netherlands" |
New Zealand | "nzl", "new zealand", "new-zealand", or "nz" |
Norway | "nor" or "norway" |
Poland | "pol" or "poland" |
Portugal | "prt" or "portugal" |
Russia | "rus" or "russia" |
Singapore | "sgp" or "singapore" |
Slovakia | "svk" or "slovak" |
Spain | "esp" or "spain" |
Sweden | "swe" or "sweden" |
Switzerland | "che" or "switzerland" |
Taiwan | "twn" or "taiwan" |
Turkey | "tur" or "turkey" |
United Kingdom | "gbr", "britain", "england", "great britain", "uk", "united kingdom", or "united-kingdom" |
United States | "usa", "america", "united states", "united-states", or "us" |
Win32 API之Setlocale函数配置地域化信息函数相关推荐
- 调用Win32 API 之CreateCursor函数失败
Win SDK文档,函数说明如下, CreateCursor CreateCursor该函数创建一个指定大小.位模式和热点的光标. 函数原型:HCURSOR CreateCursor(HINSTANC ...
- 【Win32 API】GetPixel函数返回的颜色值不正确
可能的原因 如果显示器分辨率(每英寸的像素数)过高,Windows会拉伸图形,即所谓DPI缩放,导致应用程序GetPixel取到的点跟鼠标箭头不一致.(详细描述见参考链接) 解决方法 在进入WinMa ...
- WIN32 API:绘图函数
二.创建GDI绘图对象 今天我们要讨论的是Win32 API中最有有趣的部分───用绘图函数完成图形输出.可以说,所有前面讲的内容都是本课程的前期准备.当时,我们在一些试例程序中偶尔用了一些绘图函数, ...
- c#调用win32 API函数修改系统时间
一般来说,系统时间的修改可以通过win32 API函数库中的SetLocalTime函数进行设置.对于C#语言来说,虽然win32 API大部分函数都已经封装在了.NET Framework类库中,但 ...
- Win32 API 概论
1.1为什么使用 Win32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数.这些函数在程序员手中犹如"积木块"一样,可搭建 ...
- Win32 API概论
1.1为什么使用 Win32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数.这些函数在程序员手中犹如"积木块"一样,可搭建 ...
- win32 API函数大全
[1]. API之网络函数 WNetAddConnection :创建同一个网络资源的永久性连接 WNetAddConnection2 :创建同一个网络资源的连接 WNetAddConnecti ...
- Win32 Api函数
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创 ...
- Win32 API、VC++、C# 文件操作函数的初步比较
一 C# File.ReadAllText(FilePath) : 一次将文本内容全部读完, File.ReadAllLines: 该方法返回一个字符串数组.每一行都是一个数组元素. string[] ...
最新文章
- hibernate中的hql查询语句list查询所有与iterate查询所有的区别
- android中volley通信框架简介
- Python 骚操作!如何让自己在斗图中立于不败之地?
- 为什么(12)式,km不能直接相乘?而要让域k先乘一个代数A里面的单位元,再作用在群M上呢?...
- 与时间赛跑:微盟的数据恢复为什么需要这么长时间
- 微信小程序为什么会成为了实体店“上线”的最优选择?
- C++ 以智能指针管理内存资源
- 多元回归分析python实战-----对我国财政收入的多因素进行分析
- 一款支持vue3 的颜色选择器
- Python--图片转字符画
- android别踩白块设计,别踩白块儿实例——按键精灵手机助手
- unity 烘焙模式——baked indirect/shadow mask/distance shadowmask/subtractive模式的区别
- 案例剖析:关于优化外贸网店提高支付率
- 关闭公司电脑的强制屏幕保护
- PHP请求示例API接口,商品详情数据的获取
- 内蒙古对口升学2018年计算机,2018年届对口升学考试计算机专业月考三试题.doc
- 新手做独立站需要掌握哪些技能
- 看未来的企业是如何解决潜规则的
- 电子邮箱哪家最安全,各家电子邮箱安全性盘点!
- 2021 Java 这一年