Конвертация данных в кодировку UTF-8

Материал из GedeminWiki
Перейти к: навигация, поиск

Запись в файл данных в кодировке UTF-8:

Option Explicit
Sub SaveXML_UTF8
 
  Const fmCreate = &HFFFF&
  Const FileName = "c:\temp\test.xml"
 
  Dim MS, FS, Creator
 
  Set Creator = New TCreator
  Set MS = Creator.GetObject(nil, "TMemoryStream", "")
 
  MS.WriteLn("<?xml version=""1.0"" encoding=""UTF-8""?>")
  MS.WriteLn("<note>")
  MS.WriteLn("  <text>" & _
    System.ReplaceXMLTags("Кириллический текст cо специальными символами < > "" ' &")) &_
    "</text>"
  MS.WriteLn("</note>")
 
  Set FS = Creator.GetObject(Array(FileName, fmCreate), "TFileStream", "")
  Call System.WIN1251ToUTF8(MS, FS)
End Sub

Содержимое записанного файла:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <text>Кириллический текст cо специальными символами &lt; &gt; &quot; &apos; &amp;</text>
</note>

Загрузка из файла данных в UTF-8 и перекодировка в WIN1251:

Option Explicit
Sub LoadXML_UTF8
 
  Const fmOpenRead  = 0
  Const FileName = "c:\temp\test.xml"
 
  Dim SS, FS, Creator
 
  Set Creator = New TCreator
  Set FS = Creator.GetObject(Array(FileName, fmOpenRead), "TFileStream", "")
  Set SS = Creator.GetObject(Array(""), "TStringStream", "")
  Call System.UTF8ToWIN1251(FS, SS)
 
  MsgBox System.ExpandXMLTags(SS.DataString)
End Sub
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты