在ACCESS中正确处理HTML编码

时间:2011-09-14 14:43:23

标签: html ms-access vba encoding

有人给我发了一个程序,其中我需要用HTML编码版本替换HTML中具有特殊编码的所有字符(例如,将所有'更改为',或者所有ÀÀ)。

我不确定为什么需要它,但我没有做出决定,我必须这样做。我想知道是否有办法快速有效地一次性替换所有这些字符或用尽可能少的代码替换。

为了让事情更“有趣”,整个事情都在ACCESS 2003中。

我可能会做那样的事情

Private Function EncodeString(strOriginal as string) as string
'replace the characters with Replace or something of the sort.    

End Function

2 个答案:

答案 0 :(得分:3)

在这里,你应该做你需要的事情:

Private Function EncodeString(strOriginal as string) as string
    Dim strTemp as string
    strTemp = strOriginal
    strTemp = Replace(strTemp, "ó", "ó")
    strTemp = Replace(strTemp, "á", "á")
    strTemp = Replace(strTemp, "é", "é")
    strTemp = Replace(strTemp, "í", "í")
    strTemp = Replace(strTemp, "ú", "ú")
    strTemp = Replace(strTemp, "Á", "Á")
    strTemp = Replace(strTemp, "É", "É")
    strTemp = Replace(strTemp, "Í", "Í")
    strTemp = Replace(strTemp, "Ó", "Ó")
    strTemp = Replace(strTemp, "Ú", "Ú")
    strTemp = Replace(strTemp, "¡", "¡")
    strTemp = Replace(strTemp, "¢", "¢")
    strTemp = Replace(strTemp, "£", "£")
    strTemp = Replace(strTemp, "¤", "¤")
    strTemp = Replace(strTemp, "¥", "¥")
    strTemp = Replace(strTemp, "¦", "¦")
    strTemp = Replace(strTemp, "§", "§")
    strTemp = Replace(strTemp, "¨", "¨")
    strTemp = Replace(strTemp, "©", "©")
    strTemp = Replace(strTemp, "ª", "ª")
    strTemp = Replace(strTemp, "«", "«")
    strTemp = Replace(strTemp, "¬", "¬")
    strTemp = Replace(strTemp, "®", "®")
    strTemp = Replace(strTemp, "¯", "¯")
    strTemp = Replace(strTemp, "°", "°")
    strTemp = Replace(strTemp, "±", "±")
    strTemp = Replace(strTemp, "²", "²")
    strTemp = Replace(strTemp, "³", "³")
    strTemp = Replace(strTemp, "´", "´")
    strTemp = Replace(strTemp, "µ", "µ")
    strTemp = Replace(strTemp, "¶", "¶")
    strTemp = Replace(strTemp, "·", "·")
    strTemp = Replace(strTemp, "¸", "¸")
    strTemp = Replace(strTemp, "¹", "¹")
    strTemp = Replace(strTemp, "º", "º")
    strTemp = Replace(strTemp, "»", "»")
    strTemp = Replace(strTemp, "¼", "¼")
    strTemp = Replace(strTemp, "½", "½")
    strTemp = Replace(strTemp, "¾", "¾")
    strTemp = Replace(strTemp, "¿", "¿")
    strTemp = Replace(strTemp, "×", "×")
    strTemp = Replace(strTemp, "÷", "÷")
    strTemp = Replace(strTemp, "À", "À")
    strTemp = Replace(strTemp, "Â", "Â")
    strTemp = Replace(strTemp, "Ã", "Ã")
    strTemp = Replace(strTemp, "Ä", "Ä")
    strTemp = Replace(strTemp, "Å", "Å")
    strTemp = Replace(strTemp, "Æ", "Æ")
    strTemp = Replace(strTemp, "Ç", "Ç")
    strTemp = Replace(strTemp, "È", "È")
    strTemp = Replace(strTemp, "Ê", "Ê")
    strTemp = Replace(strTemp, "Ë", "Ë")
    strTemp = Replace(strTemp, "Ì", "Ì")
    strTemp = Replace(strTemp, "Î", "Î")
    strTemp = Replace(strTemp, "Ï", "Ï")
    strTemp = Replace(strTemp, "Ð", "Ð")
    strTemp = Replace(strTemp, "Ñ", "Ñ")
    strTemp = Replace(strTemp, "Ò", "Ò")
    strTemp = Replace(strTemp, "Ô", "Ô")
    strTemp = Replace(strTemp, "Õ", "Õ")
    strTemp = Replace(strTemp, "Ö", "Ö")
    strTemp = Replace(strTemp, "Ø", "Ø")
    strTemp = Replace(strTemp, "Ù", "Ù")
    strTemp = Replace(strTemp, "Û", "Û")
    strTemp = Replace(strTemp, "Ü", "Ü")
    strTemp = Replace(strTemp, "Ý", "Ý")
    strTemp = Replace(strTemp, "Þ", "Þ")
    strTemp = Replace(strTemp, "ß", "ß")
    strTemp = Replace(strTemp, "à", "à")
    strTemp = Replace(strTemp, "â", "â")
    strTemp = Replace(strTemp, "ã", "ã")
    strTemp = Replace(strTemp, "ä", "ä")
    strTemp = Replace(strTemp, "å", "å")
    strTemp = Replace(strTemp, "æ", "æ")
    strTemp = Replace(strTemp, "ç", "ç")
    strTemp = Replace(strTemp, "è", "è")
    strTemp = Replace(strTemp, "ê", "ê")
    strTemp = Replace(strTemp, "ë", "ë")
    strTemp = Replace(strTemp, "ì", "ì")
    strTemp = Replace(strTemp, "î", "î")
    strTemp = Replace(strTemp, "ï", "ï")
    strTemp = Replace(strTemp, "ð", "ð")
    strTemp = Replace(strTemp, "ñ", "ñ")
    strTemp = Replace(strTemp, "ò", "ò")
    strTemp = Replace(strTemp, "ô", "ô")
    strTemp = Replace(strTemp, "õ", "õ")
    strTemp = Replace(strTemp, "ö", "ö")
    strTemp = Replace(strTemp, "ø", "ø")
    strTemp = Replace(strTemp, "ù", "ù")
    strTemp = Replace(strTemp, "û", "û")
    strTemp = Replace(strTemp, "ü", "ü")
    strTemp = Replace(strTemp, "ý", "ý")
    strTemp = Replace(strTemp, "þ", "þ")
    strTemp = Replace(strTemp, "ÿ", "ÿ")
    EncodeString = strTemp
End Function

答案 1 :(得分:3)

问题回答了,但我也想说些什么 如果愿意,您可以快速生成基于十六进制的html实体 这种方式更容易知道实体名称。

Function EncodeString(ByVal strOriginal)
    Dim currChar, i, sOut, CharList
    CharList =  "óáéíúÁÉÍÓÚ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×÷ÀÂÃÄÅÆ" &_
                "ÇÈÊËÌÎÏÐÑÒÔÕÖØÙÛÜÝÞßàâãäåæçèêëìîïðñòôõöøùûüýþÿ"
    sOut = strOriginal
    For i = 1 To Len(CharList)
        currChar = Mid(CharList, i, 1)
        sOut = Replace(sOut, currChar, "&#x"& Hex(AscW(currChar)) &";")
    Next
    EncodeString = sOut
End Function