我从外部 XML 读取文本时遇到问题。Flash 似乎对 (32-127) 的 ascii 字符没有问题,但它无法显示扩展字符 (128 - 255)。在那个 XML 中,我有例如“(DEC:132)和“(DEC:147)。在 XML 中,这些字符不可见,但仍然存在。Flash 无法显示它们。我的方法是获取每个 charCode 并将其转换为字符串,但这仅适用于可打印字符。
var textToConvert:String = xml.parameters.text[1].value;
trace("LENGTH = "+textToConvert.length);
var test:String="";
for(var i:int=1;i<textToConvert.length;i++){
trace(textToConvert.charCodeAt(i));
//OCT
trace(textToConvert.charCodeAt(i).toString(8));
//HEX
trace(textToConvert.charCodeAt(i).toString(16));
//HEX
test += textToConvert.charCodeAt(i).toString(16);
trace("SYMBOL : " +String.fromCharCode(textToConvert.charCodeAt(i)))
}
trace("TEST: "+test);
结果:
76
114
4c
符号:L
132
204
84
符号:(不可见)
我正在做的下一件事是将转义序列附加到每个字符“\ x”到十六进制值,然后将其转换为字符串,但这也不起作用:
s = "\x93\x93\x84\x93\x84";
ba.writeMultiByte(s,"ASCII");
trace(s);
这是我的第一种方法(不起作用):
var byteArray:ByteArray = new ByteArray();
byteArray.writeMultiByte(textToConvert,"iso-8859-1");
trace("HIER: "+byteArray.readUTFBytes(byteArray.bytesAvailable));
解决这个问题的通用方法是什么?
这是 xml,它有隐藏的 ascii 字符(引号)。我想解析节点的值,包括这些字符: