【问题标题】:Access Chr function return different code访问 Chr 函数返回不同的代码
【发布时间】:2020-04-27 11:31:14
【问题描述】:

我们的系统使用 Access VBA 函数 Chr() 来获取 ASCII 码来生成条形码。 Chr() 的所有计算机(包括 Windows 10、Windows 8 和 Windows 7)结果都是正确的,而 Windows 8.1 的结果之一不同。

例如

Chr(209) 的所有计算机返回都是“Ñ”,这是正确的。 Ch(65) 的返回是正确的“A”。

Chr(209) 的一台计算机返回是“?”这是不正确的。 Ch(65) 的返回是正确的“A”。

我尝试使用 ChrW 和 ChrB。两者仍然没有返回正确的 ASCII。不知道为什么那台电脑的回报是不同的。来自电脑的测试结果,似乎电脑无法返回正确的 128~256 码的 ASCII。

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    ASCII 代码应该是一个定义的标准,但该标准一直在变化。根据您所在的地区或您的软件版本,您期望返回的内容可能不匹配。这就是为什么您会看到像<?xml version=“1.0” encoding=“utf-8”?> 这样的项目。这会告诉其他读取它的设备您正在使用的基本编码。

    关于MSACCESS,我还没有阅读如何通过设置您希望使用的标准来解决这个问题。您可以使用STRCONV() 函数将您的代码带入您希望的标准。

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/strconv-function

    更多阅读:

    What is ANSI format?

    How to convert MS Access database encoding to UTF-8?

    有关所有 ASCII 标准的列表,请参阅:

    http://www.iana.org/assignments/character-sets/character-sets.xhtml

    【讨论】:

      【解决方案2】:

      从 Jim L 的回答和搜索更多信息中,我找到了问题/解决方案。如果我将系统区域设置更改为英文,返回代码将是正确的。

      更改系统区域设置的步骤

      1. Control Panel
      2. Region and Language
      3. Administrative
      4. Change System Locale to English
      5. Restart computer
      

      这是一个解决方案。但是,我无法控制每台计算机的语言环境,也不能假设每台计算机的语言环境都是英语。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 2020-12-28
        • 1970-01-01
        相关资源
        最近更新 更多