안드로이드 개발 정보
(글 수 1,068)
안녕하세요.
안드로이드의 Music 보면,
id3tag내의 한글이 어떤것을 깨지고 , 어떤것을 표시가 되고 한답니다.
이전에 이거 어떻게 하냐고 하면,
"Tag 편집툴로 다시 인코딩해서 넣으세요"
가 주된 답변이었습니다.
오늘 이문제 해결해 보려고 frameworks 소스로 보다 원인을 찾았습니다.
한글이 깨지는 mp3의 경우,
id3tag 내의 정보중에서 encoding에 대한 정보가 없고, 한글은 EUC-KR (완성형) 으로 인코딩 되어 있는 경우 더군요.
id3tag도 버전이 올라가면, 각 데이타의 encoding정보를 넣을 수가 있는데요.
이 인코딩 정보가 제대로 들어간 경우는 제대로 되는데, 없는 경우가 문제 더군요.
안드로이드의 mediascanner 가 mp3 파일을 해석해서
id3tag 내의 정보가 UTF-8 이면 그냥 넣고,
UTF-8이 아니고, ISO-8859-1 (Lantin-1) 이면 그냥 UTF-8 인코딩만 해서 넣더군요.
그런데, 영문의 경우는 Latin-1 코드나 UTF-8 이나 코드가 같기 때문에 이렇게 넣어도 아무 문제가 없지만,
한 글 완성형은 Unicode가 아닌데, 인코딩 정보가 없으니까 , Latin-1 코드인줄 알고,
그냥 UTF-8 방식으로 바꾸어서 그냥 넣어 버리더군요 ㅡ.ㅡ
즉, 이 문제를 해결하기 위해서는 인코딩 정보가 없는 경우의 기본값을 EUC-KR로 해주면 되더군요.
수고하세요!
안드로이드의 Music 보면,
id3tag내의 한글이 어떤것을 깨지고 , 어떤것을 표시가 되고 한답니다.
이전에 이거 어떻게 하냐고 하면,
"Tag 편집툴로 다시 인코딩해서 넣으세요"
가 주된 답변이었습니다.
오늘 이문제 해결해 보려고 frameworks 소스로 보다 원인을 찾았습니다.
한글이 깨지는 mp3의 경우,
id3tag 내의 정보중에서 encoding에 대한 정보가 없고, 한글은 EUC-KR (완성형) 으로 인코딩 되어 있는 경우 더군요.
id3tag도 버전이 올라가면, 각 데이타의 encoding정보를 넣을 수가 있는데요.
이 인코딩 정보가 제대로 들어간 경우는 제대로 되는데, 없는 경우가 문제 더군요.
안드로이드의 mediascanner 가 mp3 파일을 해석해서
id3tag 내의 정보가 UTF-8 이면 그냥 넣고,
UTF-8이 아니고, ISO-8859-1 (Lantin-1) 이면 그냥 UTF-8 인코딩만 해서 넣더군요.
그런데, 영문의 경우는 Latin-1 코드나 UTF-8 이나 코드가 같기 때문에 이렇게 넣어도 아무 문제가 없지만,
한 글 완성형은 Unicode가 아닌데, 인코딩 정보가 없으니까 , Latin-1 코드인줄 알고,
그냥 UTF-8 방식으로 바꾸어서 그냥 넣어 버리더군요 ㅡ.ㅡ
즉, 이 문제를 해결하기 위해서는 인코딩 정보가 없는 경우의 기본값을 EUC-KR로 해주면 되더군요.
수고하세요!
2010.06.27 15:42:37
한글 태그 깨지는건 이건 리눅스 기반 OS에서 공통적으로 생기는 문제 같던데요,
안드로이드폰 뿐만 아니라 파일 서버 등 기타 몇몇 리눅스 기기에서 공통적인 문제를 겪었거든요,
안드로이드폰 뿐만 아니라 파일 서버 등 기타 몇몇 리눅스 기기에서 공통적인 문제를 겪었거든요,
2010.06.28 10:05:33
MetaData를 parsing을 할때 locale 정보를 보고 parsing을 합니다.
때문에, unicode가 아닌 utf-8과 같은것을 제대로 parsing을 하기 위해서는 언어설정이 한글로 되어있는 상태에서 parsing을 하게 되면, 한글 데이터는 모두 제대로 parsing이 될겁니다. 한글이 깨진다고 parsing된 data를 한글로 바꿔버리면, 언어설정을 다른 국가로 했을때 그 국가의 data를 제대로 parsing할수 없는 문제점이 됩니다.
그리고 MediaScanner가 끝난후에 언어설정을 바꾼다고 해서 MediaScanning이 다시 돌지 않는 구조이기 때문에, 한번 parsing된 data는 db에서 지워지기 전까지는 복구할수가 없다는 부분이 있구요.
그래서 언어설정이 바꿨을때 audio data를 모두 지우고 mediascanning을 다시 돌린다면... audio에 한해서(id3tag정보는 거의 audio만 사용하니) 언어설정을 바꿀때마다 mediascanning이 도는 추가 작업이 생기겠지만, 각 언어별 metadata parsing은 제대로 되리라 봅니다 ^^
좀더 봐야 겠습니다.