【发布时间】:2017-09-22 09:05:06
【问题描述】:
我正在开发一个需要检测字符串是否为 Unicode 的函数。
我从 Access DB 中获取此字符串。
现在我每两个字节分析一次:如果秒为 00,则为 Unicode,但并非总是如此;有时我有几个字节为&H2&HA1。
我该如何解决这个问题?
【问题讨论】:
-
您阅读的是 NVARCHAR 还是 VARCHAR? NVARCHAR 是 unicode,VARCHAR 是 ASCII
-
它不是 nvarchar 或 varchar.. 是一个 ole 对象:过去有人采用字节数组,将其转换为 unicode 字符串并将其复制到 db 字段(ole 对象)中。当我们开始更改机器中的字符集表时,问题就来了:获取访问 db 字段值,将其从 unicode 转换为更改字节数组值。将值转换为正确的表是不可能的(由于我们的系统),但我需要检查一个字符串是否被转换为 unicode
-
如果您谈论的是
String数据类型,自 VB4 以来,它一直是 Unicode 字符集的 UTF-16(或其前身 UCS-2)编码。如果数据库列是 NVARCHAR,那么一旦您在String中有文本,这就是同一件事但不相关 - 除非构造字符串的任何东西做错了。每个字符都是 Unicode。那么,您的问题是什么? -
顺便说一句——微软已经以各种方式使用“Unicode”作为 UTF-16 或 UCS-2 的名称。它们是 Unicode 字符集的几种编码之一。