도시 이름 목록이있는 파일을 처리하려고합니다. 내 목표는 표준 ASCII로 음역 된 도시 이름 목록을 출력하는 것입니다. 웬일인지, 나는 단지 계속 문제에 부딪치게된다. 나는 Perl에서 iConv와 Text :: Unidecode 라이브러리를 파고 들었고, 둘 다 실패하고있다. 다음ASCII로 음역 변환하는 중
Måløv
Magtenbølle
Zvonarëvka
Denver
Zvëzdka
New York
가 iconv
통해 실행 반환 :
iconv -fUTF-8 -tASCII//TRANSLIT//IGNORE cities.txt
Mal?v
Magtenb?lle
Zvonarevka
Denver
Zvezdka
New York
여기
내가 cities.txt 전화 할게 파일에 도시 이름의 샘플 목록입니다 이것은 ASCII가 아닌 문자 중 일부에서는 잘되지만 실패합니다. 특히ø
문자로 실패합니다. 내 목록에는 수천 개의 항목이 있습니다. 실제로 작은 샘플 세트보다 큰 결과를 연구하지는 않았지만 다른 실패도 있다고 확신합니다.
내 펄 시도는 다음과 같습니다 : 거기에서
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Text::Unidecode;
while (<>) {
print unidecode $_;
}
출력은 다음과 같습니다 : 내가 직접 문을 사용하는 경우
이상하게MAY=lA,v
MagtenbA,lle
ZvonarA<<vka
Denver
ZvA<<zdka
New York
, 펄이 작업을 수행합니다. 예 :
...
print unidecode("Måløv");
은 예상대로 "Malov"를 출력합니다.
내가 뭘 잘못하고 있니?
'utf8 사용'은 * 당신이 필요로하지 않는 것임을주의하십시오; 당신의 * 소스 *가 입력 파일이 아니라 utf8이라는 것을 펄에게 알려준다. (직접적인 명령문 작업을하는 것이지만) – ysth