2012-06-02 2 views
1

ID3 태그의 인코딩 문제가 있습니다. 나는 그런 아래와 같이 다시 노드를 포함 일부 XML을 반환하는 웹 서비스를 쿼리 :C#에서 ID3 태그의 문자열을 인코딩하는 방법

<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); 

이 올바른 방향인지를?

많은 조언을 주시면 감사하겠습니다.

+0

ID3v1 또는 ID3v2를 사용하고 있습니까? ID3v1은 ASCII 전용이며, ID3v2는 유니 코드 인코딩을 사용할 수 있습니다. http://en.wikipedia.org/wiki/ID3#ID3v2 –

답변

0

내가 겪고 있던 문제는 실제로 ID3 태그에 저장하기 전에 발생했습니다. 받은 XML은 UTF-8로 설정되었지만 페이지를 요청하는 WebClient는 그렇지 않았습니다. 여기에 표시된 두 번째 줄을 추가하면 문제가 해결됩니다.

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

이 XML에서 값을 추출하면 ID3 태그 파일에 올바른 인코딩이 저장됩니다.

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입니다. 유사한 문제와 포스트 -


또한 View/edit ID3 data for MP3 files를 참조하십시오.

+0

Wikipedia 기사가 정확하다면 항상 유니 코드는 아니지만 인코딩을 선택하는 인코딩 바이트가 있습니다. http://en.wikipedia.org/wiki/ID3#ID3v2 –