가능한 경우 UTF-8 문자열에서 특수 문자와 액센트를 ASCII 문자로 바꾸어서 제거하려고합니다.PHP의 iconv가 왜 고정되어 있어야합니까?
그래서 나는 단순히이 코드를 사용하고 있습니다 :
$result = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $input);
문제 것은 예를 들어 단어 "데뷔"대신에 "데뷔"의 "dbut"로 변한다는 것이다. 나는 다음과 같이 된 setlocale에 대한 호출을 추가 할 필요가, 그것이 작동되도록하려면
setlocale(LC_ALL, 'en_US.UTF8');
$result = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $input);
그리고 그 이유를 이해하지 않습니다. UTF-8과 ASCII는 사용하는 로케일이 항상 동일하다고 생각했습니다.
편집 : 내 말은하지 않았다 UTF-8은 내가 UTF-8은 항상 UTF-8과 동일하고 ASCII은 항상 ASCII에게
ASCII 및 UTF-8은 동일하지 않습니다. UTF-8은 더 큰 규모입니다. – NikiC