質問が理にかなっているのかどうかは完全にはわかりません。ID3タグから取得したバイト配列を文字列に変換しています。ID3タグのほとんどのテキストフレームはISO8859-1エンコーディングを使用しますが、フレームによって異なります。いずれにせよ、ISO 8859-1コードで0x00が何であるかを調べると、それは無効です。
さらに複雑なことに、プログラマーのエラーまたはフォーマットの不備により、一部の文字列は0x00で終了し、一部は終了しません。
ISO 8859-1エンコーディングを使用して一連のバイトを文字列に変換する場合、文字列の末尾を手動でチェックして、それがnullかどうかを確認しましたか?または、そもそも変換に使用するメソッドを介したエンコーディングオブジェクトは、nullを適切に処理しますか?さらに、nullで終了する文字列を正規化または「修正」できる関数はありますか?
これらの文字列を表示しようとすると、正しく表示されません。
この特定のプロジェクトにはC#を使用しています。ID3タグに関するいくつかの追加情報:ID3仕様
それとも私は全体を完全に誤解していますか?ヌルターミネータは、特定の言語が文字列を処理する方法であり、エンコーディングとは関係ありませんか?
- 編集:System.Text.Encoding.GetEncoding( "iso-8859-1")に続いてGetString呼び出しを使用しました