2012-03-08 2 views
1

度記号(°)がバイト63(3F)で表されることがわかっている文字列があります。バイトから文字エンコーディングを発見する

各文字は1バイトで表されます。

使用する文字エンコーディングはどうすればわかりますか?

+0

バイトは実際には文字 '?'です。 (バイト63)私はデータを抽出するodbcドライバは文字をどのように表現するのか分からず、 '?'で置き換えるためです。 – Sebtm

+0

バイト0x3FがU + 00B0 <°> 'DEGREE SIGN'に対応していることをどのように知っていますか?私は確実にテキストファイルの8ビットエンコーディングを識別するツールを持っていますが、良い仕事をするには1バイト以上が必要です。それはいくつかの非常に大きな英語のコーパスで訓練された言語モデルを持っているので、そのようなテキストについては(> 99%の精度で)うまくいきます。英語以外の言語であれば、別のモデルを使用することができます。 – tchrist

+0

私はそれが度のシンボルであることを確かに知っています。私は文字コードを知らないだけです。 – Sebtm

答えて

1

現代のほぼすべての8ビットエンコーディングはASCII範囲のASCIIと一致しているため、バイト3Fの16進数は疑問符 "?"です。 Sebtmのコメントが示唆しているように、これは文字レベルのデータエラーが原因である可能性があります。たとえば、ASCIIに限定されている一部のソフトウェアは、他のすべてのバイトを「?」にすることができます。これは良い方法ではありませんが、可能です。

ASCII以外のバイトの場合は、ページhttp://www.eki.ee/letter/chardata.cgi?search=degree+signを使用して推測することができます。

関連する問題