バイト配列内のコンテンツエンコーディングを決定する方法はありますかGroovy/Grails?
は私だけブロブとグルーヴィー側にデータベース内に格納されたコンテンツは以下のように格納されているファイルしていますGroovyはバイト配列エンコーディングを決定します
バイト[] FILEDATA
バイト配列内のコンテンツエンコーディングを決定する方法はありますかGroovy/Grails?
は私だけブロブとグルーヴィー側にデータベース内に格納されたコンテンツは以下のように格納されているファイルしていますGroovyはバイト配列エンコーディングを決定します
バイト[] FILEDATA
いくつかの方法がありますが、彼らはより多くの回避策のようなものです。それをStringに変換できますが、そのコンストラクタにはエンコーディングである2番目のパラメータが必要です。 Stringコンストラクタは渡されたエンコーディングを「検出」するのではなく「使用する」。
mozilla'sまたはjchardetのような、いくつかのエンコード検出アルゴリズムを試すことができます。うまく理由をバイト配列が間違っているからエンコーディングを検出
This answer合計:
あなたは、任意のバイトストリームのエンコーディングを決定することはできません。これがエンコーディングの性質です。符号化とは、バイト値とその表現との間のマッピングを意味する。だから、すべてのエンコーディングは正しいかもしれません。
私は完全に同意します。エンコーディングを誰にでもデータベースに保存してみてください。何らかの理由でそれが不可能な場合、エンコーディング検出アルゴリズムが最善の策です。 – OsaSoft
君たちありがとう。しかし、この2つのアルゴリズムはgrailsアプリケーションで動作しますか?または、GroovyとJavaクラスとの統合が必要ですか? –
jchardetはJava libであり、Groovyとのシームレスな統合です。 – Will