2013-08-08 11 views
1

동일한 인코딩을 도시 mb_detect_encoding, 다음 코드I 이상한 문제가

$str = "נסיון" // <--- Hebrew chars 
echo mb_detect_encoding ($str)."<br><br><br>"; 
$str = iconv (mb_detect_encoding($str),'UCS-2BE',$str); 
echo mb_detect_encoding ($str)."<br><br><br>"; 

이 뜻 출력 :

UTF-8이 코드

이다 UTF-8

메모장 + +를 사용하여 UTF-8로 인코딩 된 파일에 BOM없이 다른 인코딩을 시도했지만 작동하지 않았습니다.

은 또한 사용하여 문자열 변환 시도 :

$str = mb_convert_encoding($str,'UCS-2BE'); 

을하지만 그 중 하나가 작동하지 않았다. 어떤 통찰력? documentation for mb_detect_order 가입일

+0

무엇이 문제입니까? 히브리어를 감지하려면? 어때?'preg_match ('/ [\ u0591- \ u05F4] /', $ sData); ' –

+0

비슷한 문제 http://stackoverflow.com/questions/17104340/mb-detect-encoding-doesnt-properly-working-with -windows-1250-cp1250 – giorgio79

답변

1

, mb_detect_encoding 시험 다른 인코딩 순서 설정 기능 :

를 mbstring은 다음 부호화 검출 필터를 구현한다. 다음 인코딩에 대해 잘못된 바이트 시퀀스가 ​​있으면 인코딩 검색이 실패합니다. UTF-8, UTF-7, ASCII, EUC-JP, SJIS,에는 eucJP 승, SJIS 승, JIS, ISO-2022-JP

들어

ISO-8859- * mbstring 항상 ISO-8859로 검출 - *.

UTF-16, UTF-32, UCS2 및 UCS4의 경우 인코딩 검색이 항상 실패합니다.

따라서 mb 함수를 사용하여 두 번째 문자열의 인코딩을 감지 할 수 없습니다.