Board logo

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

作者: czjt1234    时间: 2016-9-26 10:59     标题: 代码页和区域设置有什么联系和区别

  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


原来这不是一回事

请问代码页和区域设置有什么联系和区别?
作者: czjt1234    时间: 2016-9-26 21:28

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


或者说,为什么更改区域设置,会影响ANSI码
作者: pcl_test    时间: 2016-9-26 23:48

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

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

谢谢            .




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2