하지만, 이건 한글은 이제 잘 읽는 것 같은데......한자를 못 읽습니다-_-; 원래 안되는건가....-_-;
우선 ID3Parser 링크입니다. 매우 빠른 속도로 ID3데이터를 가져옵니다.
http://blog.ashier.com/2007/11/08/id3-parser/
여기서 한글을 읽을 수 있게 수정하는 부분이......
보면 ID3데이터를 추출해오는 부분이 있습니다.
거기서 한글로 추출할 수 있게 변경합니다.
[code]
private function parseFrames():void {
var id:String = "";
var size:uint = 0;
if(fs.position <length) {
try {
id = fs.readUTFBytes(frameIdSize);
size = fs.readUnsignedInt();
if (version>= 3) {
fs.readByte();
fs.readByte();
}
if(id.match(regEx)) {
var obj:Object = new Object();
obj.encoding = fs.readByte();
obj.text = fs.readUTFBytes(size - 1);
frames[id] = obj;
}
parseFrames();
}catch(e:Error) {}
}
}
[/code]
이 부분이 있는데요. 한글을 읽어오는 readUTFBytes 부분을 바꿔줍니다.
[code]
//obj.text = fs.readUTFBytes(size - 1);
if (obj.encoding == "1")
{
obj.text = StringUtil.trim(fs.readMultiByte(size - 1, "unicode"));
}
else
{
obj.text = StringUtil.trim(fs.readMultiByte(size - 1, "EUC-KR"));
}
[/code]
보니까 obj.encoding이 1인 값은 unicode로 인코딩 된 것 같아요. obj.encoding이 0인 값은 EUC-KR로...
이렇게 하니까 잘 되네요....가끔 공백을 추출해오고 그래서 trim처리했습니다.
아래글은 ID3v1방식 추출 방법 및 ID3v2의 다른 추출 방식 입니다^^ 참고하세요~
http://mudchobo.tomeii.com/tt/356