6

今日、お客様から読まなければならないファイルを受け取りましたが、奇妙な文字が含まれています。既知の名前を使用して、いくつかの文字の意味を推測できます。

例えば:

Realname  | Encoded as   | sign  | hex
----------|--------------|-------|-------
Françios  | Fran?ºios    | ç     | 3f ba
André     | Andr??       | é     | 3f 3f
Hélène    | H??l?¿ne     | è     | 3f bf
etc.
  • すべてのコードページ(.Netで知られている)を試してファイルをインポートし、知っている単語が含まれているかどうかを確認しました。しかし、満足できるコードページはありません。
  • Notepad ++でファイルを開くと、それはANSIであると見なされ、不要な文字も表示されます。(しかし、それは便利な16進エディタプラグインを持っています)。
  • 他のファイル(同じユーザーとzipファイルから)はUTF-8でエンコードされます。

私がファイルを受け取った人から、私は助けを期待することはできません。(Google翻訳を使用して)彼は、ファイルを作成するだけでは非常に難しいと感じ、私がアクセスできないソフトウェア(SAPを信じている)を使用していることを私に明らかにしました。

彼が送ってくれたファイルのエンコーディングを見つける方法は他にありますか?

4

2 に答える 2

6

UTF-8 でエンコードされたテキストを取得し、 CP850であると仮定して、それをLatin-1Windows-1252、または同様のエンコーディングに変換すると、これらの結果を得ることができます。「?」これは、0xc3 の CP850 文字が "├" であり、これは Latin-1 または派生エンコーディングには存在しないため、変換によって "?" に置き換えられます。


編集: iconv を使用して少し広い検索を行いました. CP437CP862、またはCP865は CP850 よりも一致しています。あなたが尋ねたので、今回使用したワンライナーは次のとおりです。

for enc in `iconv -l`; do echo -n "$enc: "; echo -n "ç é è" | iconv -s -f $enc -t "LATIN1//TRANSLIT" 2>/dev/null; echo; done
于 2011-03-11T14:37:32.817 に答える
1

UTF-8 または UTF-16 にする必要があります。ほとんどすべての通常の文字が含まれています。デコード/エンコードに問題があるようです。

ファイルが Byte-Order-Mark を使用していないため、notepad++ は混乱する可能性があります。

ファイルをどのように処理しますか?

それらをバイナリとして読み取ってから、さまざまなエンコーディングを試して文字列を取得してください。それらをバイナリとして読み取らない場合、デフォルトのエンコーディングが行われる可能性があります。

「?」そのためのサインです。

それが助けになるかもしれません。

于 2011-03-11T14:22:50.513 に答える