喫茶XRAYトップページ
[
スレッド全体
]
[3094]
文字コードの検出
返信
削除
2010/2/16 (火) 16:07:12
Mr.XRAY
古い話題で申し訳ないのですが.
http://
mrxray.
on.
coocan.
jp/
bbs/
DelphiBB
S/
mrxray_d
elphifan
_coffe.
cgi?
tree=
s2908#
2911
>結果
>(A群) 正常に「932」を返した本数 = 10本
>(B群) 「0」を返した本数 = 9本
>(C群) 文字コード'20127'(US-ASCII)を返した本数 = 5本
>(D群) (B群)のスペース(空白部)を削除して、「可変長」にしたら「932」を返した本数 = 2本
0というのはどうもシステムのデフォルトらしいです(不確実)
サンプル「886_ChangeMojiCode-04」のDetectCodepage関数の戻値の暫定値を
begin
Result := -1; //0を-1にする
でテストしてみたらどうなるかですね.
Mlangは不明な,判定不可の場合に,「デフォルトでいいんじゃない?」
というのかも知れません.
(C群)でUS-ASCIIを返すのは,やはり日本語が極端に少ないから,
のような気がします.
つまり,少し日本語が入っていてもMlangは「間違いだろう?」と
判定するとか...
(B群)との違いは,文字数が少ないので,そう判定し,文字数が少し多いと
これだけおおいのだから,間違いではなく,「デフォルト」と判定するのかも.
[3095]
Re:文字コードの検出
返信
削除
2010/2/16 (火) 16:13:29
Mr.XRAY
> 0というのはどうもシステムのデフォルトらしいです(不確実)
今Delphi2010で確認してみました.
Enc := TEncoding.GetEncoding(0);
Memo1.Lines.LoadFromStream(GetStream, Enc);
こんなコードです.
Shift-JISのテキストをGetStreamに格納して表示しました.
文字化けしません.
[3096]
Re2:文字コードの検出
返信
削除
2010/2/16 (火) 16:21:13
Mr.XRAY
すみません.今ログを読み返してみたら,
>何処かで一度UNICODEへ変換する必要が有ります。
という記述がありました.
これなら問題ないですね.
元の文字コードとは関係なしに,Unicodeへの変換は可能だと思います.
特にDelphi2009以降で変換を実行するのであれば,
TEncodintクラスが使用できますから,Mlangは使用しなくてすみます.
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82