DelphiXEとIndyで開発を行っております。
以前はDelphi7を使用していたので、文字コードの扱いの変更にとまどっております。
http://www.watercolor-city.net/ct_delphi/delphi_tiburon/doc_thirdparty/tp_indy_getwithtencoding.htm
こちらのページを参考にsjisとUTF8のページは問題なく取得できておりますが、EUCのページで記号(確認できているのは「〜」です)の変換がうまくできていないようです。
通常の日本語は文字化けせずにMemoに表示可能なのですが、「〜」が違う文字で表示されてしまいます。
見た目は確かに「〜」なのですが、Posで検索できず、どうやら違う文字になってしまっているようです。
上記ページの文字コードを 20932 として使用しましたが、別の番号、もしくは、方法をご存じの方いらっしゃいましたら是非ご教授頂きたく思います。
ちなみに、変数をAnsiStringとしてIdhttp.Getを直接代入した場合は、「〜」が「?」になってしまいます。
また、Delphi7ではjconvertを使用して変換しておりましたが、問題なく変換できておりました。
よろしくお願い致します。
http://charset.uic.jp/compare/euc-jp/cp51932/bold/
このページのA1C1のようなぎざぎざっぽい〜になる感じでしょうか?
51932はどうでしょうか?
ただし、TEncodeingでは指定できないのでConvertMultiByteToUnicodeを使うようです。
参考
http://ht-deko.minim.ne.jp/tech021.html
Atchoum さんの仰るように、EUC のコードページ 51932 だと化けなかったと記憶しています。
以下のデブキャン資料の P.41 "ANSI からUnicode へのマッピング(Windows)" に詳細があります。
[Delphi での文字コードのハンドリングについて (フルサイズ版)]
http://conferences.embarcadero.com/article/images/40483/devcamp_encore_20100415_Full.pdf
MECSUtils.ConvertMultiByteToUnicode() を使って変換するか、
TEncoding で処理したければ totonica さん作の CP51932Encoding を利用する事になると思います。
[CP51932Encoding]
http://www.watercolor-city.net/ct_delphi/index.htm
返信が遅くなり申し訳御座いません。
Atchoum様、DEKO様。
まだ確認ができていないので完了のご報告ができないのですが、まずはお教え頂きお礼申しあげます。
これよりリンク先の内容を熟読し、最適なものを使用させていただこうかと思います。
また不明な点が出てきましたら改めて質問させてください。
有難うございました。
ツイート | ![]() |