문제

유니 코드 문자열을 디아크리코트 사용하여 슬라이스하고 있습니다 mb_substr 기능이지만 단순하게 사용하는대로 작동합니다 substr 기능. 유니 코드 문자를 반으로 나눕니다.

예를 들어

echo mb_substr('ááááá', 0, 5); //Displays áá�

무엇이 잘못되었을 수 있습니까?

도움이 되었습니까?

해결책

인코딩을 마지막 매개 변수로 지정하지 않으면 같은 문제가 있습니다. mb_substr : 적어도 내 서버에서 기본값이 ISO-8859-1.


그러나 인코딩을 올바르게 설정하면 UTF-8, 그것은 괜찮습니다 :

echo mb_substr('ááááá', 0, 5, 'UTF-8');

브라우저에서 올바른 디스플레이를 가져옵니다.

ááááá


보다 mb_substr (인용, 강조 광산) :

string mb_substr  ( string $str  , int $start  [, 
    int $length  [, string $encoding  ]] )

그만큼 encoding 매개 변수는 문자 인코딩입니다. 생략되면 내부 문자 인코딩 값이 사용됩니다..

다른 팁

나는 같은 문제가 있었고 위의 답변도 나에게 도움이되었습니다. 설정 옆 php.ini 또는 사용 ini_set(), 또한 사용하는 데 도움이 될 수 있습니다 mb_internal_encoding('utf-8'); (utf-8 멀티 바이트 함수에 대한 영구 인코딩을 설정하기 위해 선택한 경우 교체 할 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top