2014-12-15 1 views
3

PHP에서 string의 첫 번째 문자를 가져오고 싶습니다. 그러나 like와 같은 몇 가지 알려지지 않은 문자를 제공합니다. 왜 그런가?PHP 하위 문자열에서 이러한 문자 유형을 반환 하시겠습니까?

$text = "अच्छी ाqस्थति में"; // Hindi String 
$char = $text[0]; // $text{0}; also try here . 
echo $char; // output like � 

//expected Output अ 

//Below code also used 
$char = substr($text , 0 , 1); // Getting same output 

하지만 자바 스크립트에서 사용하면 완벽한 출력을 얻을 수 있습니다.

var text = "अच्छी ाqस्थति में"; // Hindi String 
var char = text.charAt(0); 
console.log(char) // output like अ 

이 문제에 대한 해결책과 해결 방법에 대해 알려주십시오. 왜 이런 오류가 발생하면 & substr이 동일하게 작동합니까?

답변

12

유니 코드 문자열에 mbstring을 사용해야합니다.

$char = mb_substr($text, 0, 1, 'UTF-8'); // output अ 

'UTF-8'을 필요한 경우 다른 인코딩으로 바꿀 수 있습니다.

PHP는 기본적으로 유니 코드를 지원하지 않습니다. 이 기능을 사용하려면 mbstring이 활성화되어 있어야합니다. 확장 프로그램이로드되었는지 확인하여 확인할 수 있습니다.

if (extension_loaded('mbstring')) { 
    // mbstring loaded 
} 
+0

완벽한 직장 덕분에 @smottt – higunjan

관련 문제