1

ファイルがWindows-1256かどうかを知りたいです。JavaでテキストファイルがWindows-1256かどうかを認識する方法はありますか?

4

3 に答える 3

0

この API を使用してエンコーディングを確認できます。

http://jchardet.sourceforge.net/

そして、この質問を見てください:

Java : ストリームの正しい文字セット エンコーディングを判断する方法

于 2012-04-16T07:20:14.010 に答える
0

Windows-1256 (アラビア語)、UTF-8、および Windows-1252 (西ヨーロッパの一部) を選択できるとします。次に、UTF-8 (無意味なシーケンス) や Windows-1252 などの間違ったエンコーディングの証明を登録できます。とにかく、Windows-1252 のいくつかのシーケンスは、UTF-8 に対して解析不能な例外をスローします-

try {
    readInUTF8(file);
} catch (IsWindows1256Exception e {
    readInWindow1256(file);
}

(疑似コード)

于 2012-04-16T09:30:09.947 に答える
0

ファイルにエンコーディング ヘッダーを追加します。多くのテキスト エディタはこれを行います。

# -*- coding: cp1256 -*-

それ以外に、これを行うための信頼できる方法はありません。

問題は、cp12xx エンコーディングが互いにあまり変わらないことです。画面上では異なって見えますが、ファイルのデータには、アラビア0x8a( ٹ1256) または Š (1250 および 1252) または何も意味しない (1255) と書かれているものはありません。

PS: 右から左の問題のため、最後の文が間違っているように見えます。コード「(1256)」は、実際にはアラビア文字の後にあります。

于 2012-04-16T09:09:05.607 に答える