在Titanium Studio中,我将一个字符值存储在SQLite数据库中(使用UTF-8编码)。当我存储一个英镑符号(£)时,它存储得很好,但是当我读回来时,我得到了¬£。奇怪的是,尽管有两个字符可见,但字符串长度仍然报告为1。主要问题是此字符构成了发送到Windows Server的文件名的一部分。因此,在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)
输出调试器中的两个字符,而不是一个。感谢您的任何建议。