다...다른 방법을 검색해서 구했습니다-_-;
하지만, 이건 한글은 이제 잘 읽는 것 같은데......한자를 못 읽습니다-_-; 원래 안되는건가....-_-;

우선 ID3Parser 링크입니다. 매우 빠른 속도로 ID3데이터를 가져옵니다.
http://blog.ashier.com/2007/11/08/id3-parser/

여기서 한글을 읽을 수 있게 수정하는 부분이......
보면 ID3데이터를 추출해오는 부분이 있습니다.
거기서 한글로 추출할 수 있게 변경합니다.


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) {}
}
}

이 부분이 있는데요. 한글을 읽어오는 readUTFBytes 부분을 바꿔줍니다.

//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"));
}

보니까 obj.encoding이 1인 값은 unicode로 인코딩 된 것 같아요. obj.encoding이 0인 값은 EUC-KR로...
이렇게 하니까 잘 되네요....가끔 공백을 추출해오고 그래서 trim처리했습니다.

아래글은 ID3v1방식 추출 방법 및 ID3v2의 다른 추출 방식 입니다^^ 참고하세요~
http://mudchobo.tomeii.com/tt/356
머드초보 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
그......sound객체를 이용해서 하는 것이라니라 직접 바이트로 읽어서-_-; 하는 법이 있더라구요.
우선 ID3v1태그는 음악내용 맨 뒤에 있습니다. 그래서 추출하기는 쉽습니다.

http://cafe.naver.com/flexcomponent.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=10087
flexcomponent에서 혀니님께서 작성하신 글입니다.

그 다음 ID3v2태그는 맨 앞에 있습니다. 또한 이것을 추출하는 방법이 만만치 않습니다-_-;
왜냐하면 이건 뭐 길이도 가변적이고, 태그가 복잡합니다-_-;
그래서 태그를 공부하는 것보다 누가 만들어 놓은 것을 찾는 게 더 빠를 듯하여.....-_-;
구글신님께 부탁드리니 잘 찾아주셨습니다 ^^

http://blog.benstucki.net/?id=3

이것을 그대로 사용하시면 한글이 깨집니다.
사용자 삽입 이미지

저 위에 소스를 다운 받아서 첫번째 ID3v1에서 사용한 방법을 사용합니다.
ID3Reader.as파일에 readTextFrame이라는 함수가 있는데요.
이게 텍스트를 읽어올 때 사용하는 함수인 것 같습니다.

//obj.text = bytes.readUTFBytes(size-1);
obj.text = bytes.readMultiByte(size-1, "EUC-KR");

요렇게 바꿔줍니다-_-;
그런 다음에 실행하면 한글이 잘 나옵니다.
사용자 삽입 이미지
하지만........-_-;
기존에 Actionscript에서 제공하는 Sound클래스에서 추출하는 ID3에서 잘나오는 한글(즉 UTF-8로 인코딩 된 것)은 여기서 읽으면 잘 안나옵니다-_-; 이거 추출하는 프로그램 만드신 분이 잘못 만든건지 잘 모르겠는데요. 확인해봐야할 것 같네요 ㅠ

사용자 삽입 이미지
헉...-_-; 인코딩을 unicode로 바꾸니까 잘 나오네요. 기존에 Actionscript에서 잘 나오는 것은 unicode로 되어있어서 그런거였나요? ㅠ 더 확인해봐야겠습니다 ㅠ
이거 말고, 요아래 것으로 하면 잘 되네요.

ID3v2추출하는 다른 방법입니다.
http://mudchobo.tomeii.com/tt/357
머드초보 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오늘 아침부터....저녁까지 케삽질을 하고 있었습니다.
제 PC에서는 한글로 잘 나왔는데, 실제 옮겨질 서버(Windows Server 2003)에서 돌리면 한글 부분이 물음표(???)로 나오는 현상이 있었습니다.

삽질하다 안되서 그 윈도우서버2003에 이클립스(Eclipse)를 설치했습니다-_-; 그리고, 소스코드를 옮겨놓으니....디폴트가 CP1252로 소스코드가 되어있어서 한글이 다 깨져서 보이더군요. 분명 한글윈도우서버2003인데 이상하더군요. (CP1252는 영문윈도우 코드페이지라는군요).
그래서 강제로 MS949로 바꾸고, 한글로 고쳤습니다.
그리고, 이클립스에서 실행하는 CONSOLE창에서는 제대로 나오는 겁니다.

하지만, 그 실행파일로 실행을 하면 그대로 한글이 깨집니다-_-;
그래서 생각했습니다. 자바를 실행할 때 뭔가 옵션이있다!
그래서 구글신님께 물어보니 이런 실행방법이 있었습니다.

-Dfile.encoding=MS949

실행시 인코딩을 정하는 것 같습니다.


java -Dfile.encoding=MS949 ~~~메인클래스명

이렇게 띄우니까 한글이 나오더군요!

젠장 하루종일 삽질했네-_-;

머드초보 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
« Prev : 1 : 2 : 3 : Next »