【发布时间】:2023-03-18 06:12:01
【问题描述】:
XML 文档:
<?xml version="1.0" encoding="utf-8"?>
<response>
<center>
<b>Need to decode this -> ????</b>
</center>
</response>
我当前的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Doc: IXMLDocument;
S: AnsiString;
SW: WideString;
I: Integer;
begin
Doc := TXMLDocument.Create(nil);
Doc.LoadFromFile('example.xml');
SW := Doc.DocumentElement.ChildNodes['center'].ChildNodes['b'].NodeValue;
S := '';
for I := 1 to Length(SW) do
if Ord(SW[I]) > $04FF then
S := S + IntToHex(Ord(SW[I]), 4) + ' '
else
S := S + SW[I];
Memo1.Text := s;
end;
SW 以 UTF-16(宽字符串)编码并包含字符序列 #$D83D#$DE09,但我需要它作为 XML/SGML 实体,如 '&#128521;'。我该如何编码?
使用的字符是这样的:http://www.fileformat.info/info/unicode/char/1f609/index.htm
【问题讨论】:
-
不太清楚。所以基本上,您对什么 XML DOM 实现在基本多语言平面之外解码一个字符并将其编码为两个 UTF-16 单元不满意?并希望将其编码为 SGML 字符实体?
-
不太明白,我忘了添加XML文档...我现在就添加它
-
不顾我的判断,我尝试下载您的 XML 文件。我得到的只是 NFL 球衣的广告和下载服务。你能不能只在你的问题中粘贴 XML ?如果它太大而无法发布,那么它太大而无法阅读,因此将其削减到可以证明您的问题的最低限度,然后将其粘贴到此处。
-
已添加.......
-
我不知道你在这里问什么。您显示的 UTF-8 XML 有什么问题?我看不到任何需要解码的内容?
标签: xml delphi unicode delphi-7