今日、既存の Java コードを再コンパイルして、元のコードにハードコーディングされたディレクトリ パスを変更する必要がありました Java は、LINUX で次のコマンド ライン コマンドを使用して再コンパイルされました
javac -verbose -classpath /data/flexapp/maxmind/api/GeoIPJava-1.2.8/source:. CityLookupTest2.java
新しいコンパイル済みコードと古いコードを使用して生成された出力に違いがあり、バイトの違いは 2 バイト文字または国際文字にあるようです。以下の太字のコードを参照してください
[flexapp@gaalplpclu02df pp]$ cat currtrackgeo.201301031445.run1|grep 1ZY9307E6894015571
01/03/2013 14:46:43.004,TrackHTML,1ZY9307E6894015571,,92.56.217.169,en_US,,ES,51,Vélez-málaga,null,36.7726,-4.100403,0,0
[flexapp@gaalplpclu02df pp]$ cat currtrackgeo.201301031445|grep 1ZY9307E6894015571
01/03/2013 14:46:43.004,TrackHTML,1ZY9307E6894015571,,92.56.217.169,en_US,,ES,51,V?lez-m?laga,null,36.7726,-4.100403,0,0
次のエンコーディングパラメーターを使用しようとしましたが、すべて同じ出力になりました
-encoding ISO-8859-1
-encoding ISO-8859-2
-encoding UTF-8
元のプログラマーはすでに退職しており、古いコードが以前にどのようにコンパイルされたかについてのドキュメントはありません。これは、すべての 2 バイト文字を に置き換えるために適用されたエンコーディング パラメータだと思いますか? この例では Ã から。
ユーザー コミュニティをコラムの新しいバリエーションと混同したくないので、ご協力いただければ幸いです。