[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 代码页和区域设置有什么联系和区别

  1. MsgBox Chr(147)
  2. SetLocale 1033
  3. MsgBox Chr(147)
复制代码
更改了区域设置后,字符也变了
所以一直以为更改区域设置就是更改代码页
  1. Set oWMI = GetObject("Winmgmts:\\.\Root\Cimv2")
  2. For Each oSWbemObject In oWMI.InstancesOf("Win32_OperatingSystem")
  3.     MsgBox oSWbemObject.GetObjectText_()
  4. Next
复制代码
可以看到代码页是936,应该是GBK
区域设置是0804,十进制就是2052


原来这不是一回事

请问代码页和区域设置有什么联系和区别?

QQ 20147578

  1. MsgBox Hex(Asc("中"))
  2. SetLocale 1033
  3. MsgBox Hex(Asc("中"))
复制代码


或者说,为什么更改区域设置,会影响ANSI码

QQ 20147578

TOP

本帖最后由 pcl_test 于 2016-9-26 23:50 编辑

区域设置定义了系统使用哪种代码页,setlocale改变了程序运行时的区域设置代码页,那么与区域设置相关的函数的输出则由对应的区域设置和代码页决定;区域设置是一个国家/地区的一组设定,如代码页、排序规则、日期和时间格式、数字和货币约定等,代码页是一个字符集(或转换表)且与语言有关,共同作用就是为了适应世界上不同国家/地区用户的文化背景和生活习惯,兼容现有的数据和程序

TOP

谢谢            .

QQ 20147578

TOP

返回列表