如何在Excel中对"高"字符进行HTML编码或音译?

Chr*_*ess 3 excel vba character-encoding export-to-csv

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

我们有一个XLS文档,其中包含一些"高"字符.数据已通过数据库连接引入,似乎Excel正确处理位于不同代码页中的单个单元格(或行).

当我们将此数据导出为CSV时,某些高字符未正确呈现 - Excel似乎使用单个编码(当然),以及原始代码页中字符的位值(可能会也可能不会)与同一文件中的其他值保持一致).

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

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

Rik*_*kki 5

pgc01有一个功能似乎可以解决这个问题:http://www.mrexcel.com/forum/showpost.php?p = 2091183&posttcount = 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
Run Code Online (Sandbox Code Playgroud)

如果您不确定如何将其导入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;