问题可能是由于您显示该 unicode 文本的位置。
我将这些相同的字符粘贴到表中的文本字段中。在即时窗口中检索它们DLookup
会导致它们显示为问号,因为即时窗口不会按照您的意愿显示 unicode。
? DLookup("some_text", "tblFoo", "id = 1")
??????
AMsgBox
也将它们显示为问号。
MsgBox DLookup("some_text", "tblFoo", "id = 1")
但是,表单文本框控件确实具有正确处理 unicode 的能力。将文本框绑定到包含这些字符的字段给了我这个......
查询还可以引用 unicode 字符,这在其WHERE
子句中使用一个,并在数据表视图中打开查询时正确显示它们。
SELECT f.id, f.some_text
FROM tblFoo AS f
WHERE (((f.some_text) Like '佛*'));
我怀疑这一切都归结为您尝试使用这些 unicode 字符的方式以及显示它们的位置。
在评论中,您说将这些 unicode 字符写入文本文件只会产生问号。但是,如果您将 unicode 写入文本文件(如下面的过程)并在能够正确处理 unicode 的编辑器中显示该文件,您将看到在存储它们的表的数据表视图中看到的相同字符. 此屏幕截图显示使用从下面的代码创建的文件打开的写字板。
Dim objFso As Scripting.FileSystemObject
Dim objFile As Scripting.TextStream
Set objFso = New Scripting.FileSystemObject
Set objFile = objFso.OpenTextFile(CurrentProject.Path & _
Chr(92) & "unicode.txt", ForWriting, True, TristateTrue)
objFile.Write DLookup("some_text", "tblFoo", "id = 1")
objFile.Close
Set objFile = Nothing
Set objFso = Nothing