Конвертация данных в кодировку UTF-8
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 23: | Строка 23: | ||
Call System.WIN1251ToUTF8(MS, FS) | Call System.WIN1251ToUTF8(MS, FS) | ||
End Sub | End Sub | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | Содержимое записанного файла: | ||
| + | |||
| + | <syntaxhighlight lang="xml"> | ||
| + | <?xml version="1.0" encoding="UTF-8"?> | ||
| + | <note> | ||
| + | <text>Кириллический текст cо специальными символами < > " ' &</text> | ||
| + | </note> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Текущая версия на 20:01, 14 мая 2016
Запись в файл данных в кодировке 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