멀티 바이트 문자열에 mb_* 또는 iconv_* 함수를 사용해야합니까?
문제
우리 모두와 마찬가지로 Multibyte 줄을 처리하는 것은 PHP에서 쉽지 않습니다. 예를 들어 다음 문자열의 길이를 얻고 싶습니다. ä
strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1
어떤 기능을 사용해야합니까? mb_* 또는 iconv_*? 왜요? 인코딩이 UTF-8로 제한되지 않을 수 있음을 고려합니다.
미리 thx!
해결책
이 PowerPoint 프레젠테이션을 살펴보십시오.
http://www.nyphp.org/content/presentations/smallworld/april2006-nyphp-presentation.ppt
간단히 말해서 : ICONV는 더 많은 인코딩을 지원하지만 휴대 성이 덜합니다.
프레젠테이션에서 :
PHP는 두 가지 확장에서 멀티 바이트를 지원합니다 : Iconv 및 MBstring
- ICONV는 외부 라이브러리를 사용합니다 (더 많은 인코딩을 지원하지만 휴대용이 적음)
- MBString에는 라이브러리에 PHP가 번들되어 있습니다 (인코딩은 적지 만 휴대하기 쉬운)
제휴하지 않습니다 StackOverflow