チケット #3260

Linuxで利用するとDBに入る番組表が文字化けする
登録: 2003-11-02 05:04 最終更新: 2007-09-03 01:11

報告者:
担当者:
(未割り当て)
チケットの種類:
状況:
完了
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
9 - 最高
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

インターネットテレビガイドは、Shift JISでエンコードされ
ているみたいだが、Context-typeを見て漢字のエンコーディ
ングを行っていないため、LinuxのようにJava VMのdefault
エンコーディングが、Sift JISでない場合にDBに正しく番組表
が記録されない。
#Windowsでは、defaultエンコーディングが、Shift JISなので
ため問題なし。

本来は、インターネットテレビガイドから取って来たHTTP
レスポンスのContext-typeヘッタでエンコードを決めるべき。
しかし、Context-Typeを解釈するのには手間がかかるので、
とりあえずは、レスポンス全体をJISAutoDetectでエンコード
すれば、DBに正しい漢字コードで保存することができる。

Index:
jp/sourceforge/whitetable/util/iepg/IEPGProgramFactory.
java
=======================================================
============
RCS
file: /cvsroot/whitetable/src/jp/sourceforge/whitetable
/util/iepg/IEPGProgramFactory.java,v
retrieving revision 1.5
diff -u -r1.5 IEPGProgramFactory.java
---
jp/sourceforge/whitetable/util/iepg/IEPGProgramFactory.
java 18 May 2003 18:12:03 -0000 1.5
+++
jp/sourceforge/whitetable/util/iepg/IEPGProgramFactory.
java 1 Nov 2003 20:02:22 -0000
@@ -105,7 +104,13 @@
/** 文字列を解析してTVProgramオブジェクトを返しま
す。
*/
public TVProgram[] analyze(InputStream is) throws
WhiteTableException {
- return this.analyze(new InputStreamReader
(is));
+ try {
+ return this.analyze(new InputStreamReader
(is, "JISAutoDetect")); //TKYN
+ } catch (UnsupportedEncodingException e) {
+ throw new WhiteTableException(e);
+ } catch (WhiteTableException e) {
+ throw new WhiteTableException(e);
+ }
}

/**

チケットの履歴 (2 件中 2 件表示)

2003-11-02 05:33 更新者: takuya-o
  • 優先度5 - 中 から 9 - 最高 に更新されました
2007-09-03 01:11 更新者: takuya-o
  • チケット完了時刻2007-09-03 01:11 に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする