Titanium Studio では、SQLite データベース (UTF-8 エンコーディングを使用) に 1 文字の値を格納しています。ポンド記号 (£) を保存すると問題なく保存されますが、読み返すと ¬£ になります。奇妙なことに、2 文字が表示されているにもかかわらず、文字列の長さは 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)
1 つだけではなく、2 つの文字をデバッガーに出力します。提案をありがとう。