1

ID3 タグのエンコードに問題があります。以下のようなノードを含む XML を返す Web サービスをクエリします。

<name>Blue Öyster Cult</name>

次に、この情報を使用して ID3 タグを更新しています。問題は、タグが次のように更新されることです。

Blue Öyster Cult

これがエンコーディングの問題であることはわかっていますが、それを機能させる方法を見つけるのに苦労しています。私の理解では、ID3 タグは ISO-8859-1 としてエンコードする必要があります。

私はこのコードを書きましたが、違いはありません:

Encoding newEncoding = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = Encoding.UTF8.GetBytes(newArtistName);
byte[] asciBytes = Encoding.Convert(utf8, newEncoding, utfBytes);
string encodedArtistName = newEncoding.GetString(asciBytes);

これは正しい方向ですか?

アドバイスをいただければ幸いです。

4

2 に答える 2

2

ID3 v2

テキストフレームは、エンコーディングバイトでマークされます。

$00 – ISO-8859-1 (ASCII).
$01 – UCS-2 (UTF-16 encoded Unicode with BOM), in ID3v2.2 and ID3v2.3.
$02 – UTF-16BE encoded Unicode without BOM, in ID3v2.4.
$03 – UTF-8 encoded Unicode, in ID3v2.4.

詳細な仕様はhttp://id3.org/id3v2-00にあります。


MP3ファイルのID3データの表示/編集-同様の問題を投稿するも参照してください。

于 2012-06-02T22:21:12.987 に答える
0

私が抱えていた問題は、実際には ID3 タグに保存する前でした。私が受け取った XML は UTF-8 に設定されていましたが、ページを要求している WebClient はそうではありませんでした。ここに示す 2 行目を追加すると、問題が解決しました。

WebClient client = new WebClient();    
client.Encoding = Encoding.UTF8;
String htmlCode = client.DownloadString(requestURL);

値がこの XML から抽出されている場合、ファイル ID3 タグに保存される正しいエンコーディングがあります。

于 2012-06-03T11:52:41.900 に答える