2012-08-11 3 views
1

print iconv('UTF-8', 'us-ascii//TRANSLIT', 'Ин Совет Россия, дог фес ю!');의 iconv - 공지 사항 :의 iconv() [function.iconv] :이 통지를 던졌습니다 왜 나는 그것을 얻지 않는다 입력 문자열

에 잘못된 문자를 발견했습니다. 문자열은 유효한 UTF8입니다.

모든 문자를 해당 ASCII 문자로 변환해야합니다. 맞습니까? 예를 И를 들어

이 ... н 등등 n이어야하며, I해야

+0

나는이 통지를하지 않지만, 물음표 단지 무리 : 방금 추가 데이터 (러시아어로 사용하고 각 문자의 원하는 음역과 같이 키릴 알파벳을 포함 배열)와 같은 뭔가, . 음역 기능이 러시아어 (?)에서 작동하지 않는 것 같습니다. 덕분에 – Niko

답변

5

iconv 기능하지 않습니다 실제로 음역을; 매개 변수 이름 TRANSLIT은 오해의 소지가 있습니다. documentation은 다음과 같이 말합니다 : "// TRANSLIT 문자열을 out_charset에 추가하면 음역이 활성화됩니다. 즉, 대상 문자 세트에서 문자를 나타낼 수없는 경우 유사한 문자로 둘러 볼 수 있습니다. "분명히 이는"€ "에서"EUR "와 같은 단순한 일련의 임시 매핑을 의미하며 "ß"~ "ss".

음역의 경우 다른 것이 필요합니다. 키릴 문자에서 라틴 문자로 러시아어 텍스트를 번역하려면 어려운 부분은 사용할 음역표를 결정하는 것입니다. 그 후에, 그것은 단지 원시 작업입니다. 대신

$msg = 'Ин Совет Россия, дог фес ю!'; 
$cyr = array('и', 'я'); 
$lat = array('i', 'ya'); 
$latmsg = str_replace($cyr, $lat, $msg); 
print $latmsg; 
+0

. 나는 내가 찾고있는 것을 발견했다고 생각한다 - https://github.com/jbroadway/urlify (URLify.php 파일의 문자표) – ellabeauty

관련 문제