在 Titanium Studio 中,我将一个字符值存储在 SQLite 数据库(使用 UTF-8 编码)中。当我存储一个英镑符号 (£) 时,它存储得很好,但是当我读回它时,我得到的是 ¬£。奇怪的是,尽管有两个字符可见,但字符串长度仍报告为 1。主要问题是该字符构成了发送到 Windows 服务器的文件名的一部分。因此,在 Titanium 中,尽管有额外的字符,但一切正常,当文件名发送到 Windows 时,我们会得到另一个奇怪的字符。我尝试使用 Ti.Buffer 转换字符,但是当我解码时,我仍然得到相同的字符。
var tipo_v='';
var buf = Ti.createBuffer({length:1024});
var l = Ti.Codec.encodeString({
source: Vtipo_visita,
dest: buf,
});
buf.length= l;
tipo_v = Ti.Codec.decodeString({
source: buf,
charset: Ti.Codec.CHARSET_ASCII
});
变量 Vtipo_visita 具有 ¬£ 值。在调用 decodeString() 之后,tipo_v 的值为 √Ǭ。
我也尝试使用 CHATSET_ISO_LATIN_1,但没有任何区别。如果没有前面的额外字符,我怎样才能让这个字符正确显示。
最后一点,我发现只是做
String.fromCharCode(163)
在调试器中输出两个字符,而不是一个字符。感谢您的任何建议。