Skip to content

Instantly share code, notes, and snippets.

@gsbelarus
Created May 5, 2016 14:49
Show Gist options
  • Save gsbelarus/4202213324f0504868152d32853de8c6 to your computer and use it in GitHub Desktop.
Save gsbelarus/4202213324f0504868152d32853de8c6 to your computer and use it in GitHub Desktop.
Перекодировка WIN1251 в UTF-8 и замена служебных символов разметки XML
' перекодировка кириллицы в юникод
public function Win1251_ToUTF8(ByVal S)
dim Res, i, AscCode, Symb, b1, b2, utfc
Res = ""
for I = 1 to Len(S)
Symb = Mid(S, I, 1)
AscCode = Asc(Symb)
' кириллица кроме ё и Ё
if (AscCode >= 192) and (AscCode <= 255) then
Res = Res & "&#x0" & Hex(AscCode + &H410 - 192) & ";"
' ё
elseif AscCode = 184 then
Res = Res & "&#x0451;"
' Ё
elseif AscCode = 168 then
Res = Res & "&#x0401;"
' №
elseif AscCode = 185 then
Res = Res & "&#8470;"
' '
elseif AscCode = 39 then
Res = Res & "&apos;"
' "
elseif AscCode = 34 then
Res = Res & "&quot;"
' <
elseif AscCode = 60 then
Res = Res & "&lt;"
' >
elseif AscCode = 62 then
Res = Res & "&gt;"
' &
elseif AscCode = 38 then
Res = Res & "&amp;"
' «
elseif AscCode = 171 then
Res = Res & "&#171;"'"&laquo;"
' »
elseif AscCode = 187 then
Res = Res & "&#187;"'"&raquo;"
else
Res = Res & Symb
end if
next
Win1251_ToUTF8 = Res
end function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment