【问题标题】:Convert Windows Char Set to Cyrillic将 Windows 字符集转换为西里尔字母
【发布时间】:2014-11-04 00:46:53
【问题描述】:

我有一组来自客户端的表,它们应该是西里尔字母,但我猜原始编码错误或未设置。所有的文字都是胡言乱语。 如果我将文本粘贴到 html 页面中并将编码设置为 Cyrillic-1251,我会看到应有的文本。

Before: Ñèíèöûí À.Â.
After: Синицын А.В.

我一直在寻找一种 VBA 解决方案来转换表格中的文本,但没有成功。我认为这会很快很容易,但到目前为止还没有运气。

我正在运行带有 Access 2010 的 Win 7

如果您不了解 Access,但有任何 VBA 函数来执行此操作,我可以根据需要对其进行调整。

任何帮助将不胜感激。

【问题讨论】:

    标签: ms-access character-encoding vba cyrillic


    【解决方案1】:

    解决该问题的一种可能方法是将表导出为 CSV 作为代码页 1252(“ANSI”),然后将其作为代码页 1251 导入。我刚刚尝试过,对于名为 [OldTable] 的现有表

    以下 VBA 代码

    Option Compare Database
    Option Explicit
    
    Sub DiskBounce()
        Const tempFilePath = "C:\Users\Gord\Desktop\foo.csv"
        DoCmd.TransferText _
                TransferType:=acExportDelim, _
                TableName:="OldTable", _
                FileName:=tempFilePath, _
                HasFieldNames:=True, _
                CodePage:=1252
        DoCmd.TransferText _
                TransferType:=acImportDelim, _
                TableName:="NewTable", _
                FileName:=tempFilePath, _
                HasFieldNames:=True, _
                CodePage:=1251
        Kill tempFilePath
    End Sub
    

    产生了以下 [NewTable]

    【讨论】:

    • 希望有更直接的东西,并且可能仍然使用它。同时,1 个解决方案 +1。如果我最终使用它,我会回来并将其标记为已接受。谢谢
    • 好的,在玩了很多研究之后,看来我可以将 836 添加到双字节(如果它的值超过 127)。这对于单个字符串会很方便,但看起来您的过程对于整个表来说是最简单的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2011-06-11
    相关资源
    最近更新 更多