7
4

2 に答える 2

0

ファイルのエンコーディングを検出するのは難しい問題です。UTF は先頭に BOM があるため簡単ですが、それ以外の場合、エンコーディング タイプを正しく判断することはほとんど不可能です。

ただし、XML が適切にフォーマットされている場合は、エンコーディングが埋め込まれている必要があり、パーサーはそれを適切に処理する必要があります。UTF-8 から UTF-32 への変換を行っているようですが、文字列を少し大きくするだけなので、これはまったく役に立ちませんが、文字のエンコードに使用されるコードポイントは変更されません。

そのため、XML パーサーにファイルのエンコーディングを要求し、それを UTF-8 (または 32) に変更してから保存および/または処理することができるはずです。

于 2012-07-23T23:16:03.297 に答える
0

もし私があなただったら、私は2つのことのうちの1つをします. データベースのエンコーディングがまったく入らないように、エンコーディングなしでデータベースに(ブロブとして)保存するだけです。

他にできることは、情報をデータベースにまったく保存しないことです。それをファイルに保存し(ファイルに一意のハッシュを付けます)、xmlを含むファイルの場所を保存するデータベースにテーブルを作成します。その後、ファイルから直接 xml を提供できます。

于 2012-07-23T23:16:15.423 に答える