Конвертация данных в кодировку UTF-8
Материал из GedeminWiki
Версия от 17:01, 14 мая 2016; SYSDBA (обсуждение | вклад)
Запись в файл данных в кодировке 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о специальными символами < > " ' &</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