2011-08-10 6 views
1

(SUBSTR 등을 사용하여) 모두에서 키릴 문자열을 수정할 수 없습니다 나는아약스 + UTF-8 : 이상한 행동

단계 단계 방법을 ...에 의해 문자 문제가 여기에서 설정 및-8 UTF로 전환 작업 (및 작동!) :

< 텍스트 영역의 이름 = "코멘트"> blahblahblah </텍스트 영역> -----> 자바 스크립트 이벤트 ----->아약스 POST 방법을 사용하여 blahblahblah 텍스트를 전송 ----->part1.php 파일을받습니다. $ comment = $ _ POST [ "comment"]; 성공적으로 텍스트 영역 아래의 html 페이지에 문제없이 표시됩니다.

그러나 텍스트가 수정되지 않았거나 수정 될 수 있지만 영어 문자 만 포함해야하는 경우 모든 것이 완벽합니다. 그렇지 않으면 직사각형이 키릴 문자 대신 페이지에 있습니다.

$comment=$_POST["comment"]; 

echo $comment."|".strlen($comment)."|".substr($comment,0,1); 

가 텍스트 영역에 입력 : 여기

는 HTML 페이지에 part1.php 여러 결과의 코드 "안녕하세요". 텍스트 영역 아래에 표시됩니다. hello | 5 | h // OK

"Hello, Варна"텍스트 영역에 입력되었습니다. 텍스트 영역 아래에 표시됩니다. 안녕하세요, Варна | 16 | H // 확인

"Варна"텍스트 영역에 입력되었습니다. 텍스트 영역 아래에 표시됩니다. 자바 스크립트 오류의 경우 브라우저 왼쪽 아래에 '페이지의 오류'가 표시되지 않습니다.

substr($comment,0,1)을 제거하고 "Варна"라고 쓰면 Варна | 10을 실수없이 표시합니다.

왜이 문제가 발생하여 해당 문자열의 일부를 추출하여 수정할 수 없습니까? ... 어떤 아이디어입니까?

감사합니다.

+2

['mb_strlen'] (http://www.php.net/manual/en/function.mb-strlen.php) 및 ['mb_substr'] (http://php.net/manual /en/function.mb-substr.php). – Shef

+0

감사합니다! 그것이 내가 필요한 것입니다! 이제 작동합니다! – Haradzieniec

+0

@S B : 좋습니다. 나는 이것을 답으로 쓰고, 당신은 그것을 받아 들일 수 있고이 문제를 해결 된 것으로 표시 할 수 있습니다. – Shef

답변