日本語がうまく扱えないので調べてみた。
ことの発端はローカルで開発しているときには問題がでなかった文字コード問題がサーバー側で起動したらぽろぽろ問題が発生したことにある。
byteコードに直したデータを再変換かけてやってもなぜか??????等こわれた文字列になって動作できなかったです。
システムエンコードとデフォルトエンコードをしらべてみると
System.out.println(new InputStreamReader(System.in).getEncoding());
System.out.println(System.getProperty("file.encoding"));
ASCII
ANSI_X3.4-1968
という文字コードになっている模様。
System.setProperty("file.encoding", "UTF8");等やってみたものの効果なし。
仕方ないのでRed5の起動オプションに
-Dfile.encoding=UTF8
を追加しました。これがないとQuercus上でUTF8の文字列のJava PHP間での共有ができないっぽいです。
この状態でエンコードを調べると
UTF8
UTF8
となりました。
なお、先に問題になっていた、Quercus上での2重エンコードしてしまってUTF8が化ける問題はこの件とは別ものです。やはりbin2hexで16進数文字列に変更してやってから変換かけないとだめっぽいです。
0 件のコメント:
コメントを投稿