Sidebar |
Win32 SJIS(〜Delphi2007? )で、Idhttp.Getすると壊れる理由
編集:2010年12月21日
執筆:2010年12月20日
今日のお題は、? 使用したバージョン: Indy version 10.5.8 IdHttp.Get(URL)が いつの間にか文字コードが自動変換になりました。 Delphi2009より前のDelphiでのIndy文字化け デフォルトがencASCIIのため 文字が破壊され ? に なってしま います。 ※Delphi2009以降は、UTF8で呼ばれるので、この問題はないと思います。 英文圏がデフォルトのため、 Win32 SJISベースのDelphi(〜2007?まで)の場合は、変更が必要です。 IdGlobal.GIdDefaultAnsiEncoding := encOSDefault;
のお好きなほうを、プログラムの最初や随時変更が必要なところで呼びます。IdGlobal.GIdDefaultAnsiEncoding := encUTF8; グローバル変数なので、毎回変更がいらない場合は、1回よべば十分です。 TIdhttpに限らず、TIdMailなどで変なときは、試してみる価値はあります。 Delphi2009以降の最新版は、UTF8ベースなので、こういう変更はいらないと思います。 グローバル変数をいじる方がコードの書き換えが少なくてすみます。 画像などをIdHTTP1.Get(url)で取得していた場合は、コードを修正する必要があります。 » 続きを読む |
Sidebar |