在Titanium Studio中的英镑符号前的奇怪字符

时间:2013-10-10 16:27:45

标签: character-encoding titanium titanium-mobile

在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)  

输出调试器中的两个字符,而不是一个。感谢您的任何建议。

0 个答案:

没有答案