AR さんが書きました:
nsIScriptableUnicodeConverter を使用して Unicode と他の文字コードの間を行ったり来たりできます.
使い方としてはこんな感じ.
コード:
var conv = Components.classes ["@mozilla.org/intl/scriptableunicodeconverter"]
.createInstance (Components.interfaces.nsIScriptableUnicodeConverter);
conv.charset = "shift_jis";
var unicode_text = "なんとか";
var sjis_text = conv.ConvertFromUnicode (unicode_text);
var unicode_text2 = conv.convertToUnicode (sjis_text);
どうもありがとうございます。返信遅れてすいません。
AR さんが書きました:
あとは目的の文字コードの名前さえ分かればOKかと思います.
やっぱこれがネックですよね。自分が今使ってる
Escape Codec Library: ecl.jsでは以下のような感じのソースで判断していて、結局個別に判断するしかないのかなーって感じなんですが。
コード:
if(/%u[0-9A-F]{4}/i.test(str))return "Unicode";
if(/%([0-9A-DF][0-9A-F]%[8A]0%|E0%80|[0-7][0-9A-F]|C[01])%[8A]0|%00|%[7F]F/i.test(str))return "UTF16LE";
if(/%E[0-9A-F]%[8A]0%[8A]0|%[CD][0-9A-F]%[8A]0/i.test(str))return "UTF8";
if(/%F[DE]/i.test(str))return /%8[0-9A-D]|%9[0-9A-F]|%A0/i.test(str)?"UTF16LE":"EUCJP";
if(/%1B/i.test(str))return /%[A-D][0-9A-F]/i.test(str)?"JIS8":"JIS7";
var S=str.substring(0,6143).replace(/%[0-9A-F]{2}|[^ ]| /ig,function(s){
return s.length<3?"40":s.substring(1)
}),c,C,i=0,T;
(以下略)