【问题标题】:How to HTML encode or transliterate "high" characters in Excel?如何在 Excel 中对“高”字符进行 HTML 编码或音译?
【发布时间】:2011-10-24 14:40:03
【问题描述】:

在 Excel 中,如何将包含重音字符、花引号等的单元格的内容转换为相同字符的 HTML 或音译的纯文本版本?

我们有一个 XLS 文档,其中包含一些“高”字符。数据已通过数据库连接拉入,看来 Excel 正确处理了位于不同代码页中的单个单元格(或行)。

当我们将此数据导出到 CSV 时,一些高位字符未正确呈现 - Excel 似乎对文档使用单一编码(当然),以及来自其原始代码页的字符的位值(可能或可能与同一文档中的其他值不一致)。

由于 Excel 在导出前会正确呈现文本,我相信此时我们应该能够将高位字符编码为其 HTML 等价物,然后导出为 CSV,从而确保 CSV 仅是 ASCII。

(或者,我们可以音译为纯 ASCII,但这似乎是一种糟糕的方法,而且可能并不容易......)

【问题讨论】:

  • 所提供的 xlsx / xlsm 文档的属性似乎将 Excel 报告为版本 14.0300

标签: excel vba character-encoding export-to-csv


【解决方案1】:

pgc01 有一个函数似乎可以解决这个问题: http://www.mrexcel.com/forum/showpost.php?p=2091183&postcount=7

希望我可以引用他们的代码:

Function CodeUni(s As String, Optional bHex As Boolean = True)
    If bHex Then
        CodeUni = Right("0000" & Hex(AscW(Left(s, 1))), 4)
    Else
        CodeUni = AscW(Left(s, 1))
    End If
End Function

如果您不确定如何将其添加到 Excel 工作簿中,本指南非常有用:http://office.microsoft.com/en-us/excel-help/create-custom-functions-in-excel-2007-HA010218996.aspx

总结一下:

  1. Alt+F11 调出 VBA 编辑器
  2. 插入 > 模块
  3. 将以上代码粘贴到
  4. 在工作表中使用函数!

为了将其作为正确的 HTML 编码的 unicode 实体,我使用了:

="&#"&CodeUni(C1, TRUE)&";"

在我的测试用例中,我在 C1 和 E1 中有 ﻼ,公式显示为 FEFC;

【讨论】:

    猜你喜欢
    • 2021-06-21
    • 2010-09-18
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多