ajax + utf-8: вообще не может изменять строку кириллицы (используя substr и т. д.), странное поведение - PullRequest
1 голос
/ 10 августа 2011

Я переключился на набор символов utf-8, и вот проблема ...

пошагово, как это работает (и это работает!):

<имя текстовой области= "comment"> blahblahblah -----> событие javascript -----> отправляет текст blahblahblah, используя ajax метод POST -----> part1.php файл получает $ comment = $ _ POST ["comment"]; успешно и без проблем отображает его на html-странице под текстовой областью.

Но все идеально, если этот текст не изменен или может быть изменен, но должен содержать только английские буквы.в противном случае прямоугольники на странице вместо букв кириллицы.

вот код part1.php и несколько результатов на html-странице:

$comment=$_POST["comment"];

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

Введено в текстовое поле: "Hello",Отображается под текстовой областью: hello | 5 | h // OK

Введена в текстовую область: "Hello, Варна".Отображается под текстовой областью: Hello, Варна | 16 | H // OK

Входит в текстовую область: "Варна".Отображается под текстовой областью: ничего, «Ошибка на странице» отображается в браузере слева вниз, как для ошибок JavaScript.

Если я удаляю substr($comment,0,1) и пишу «Варна», он будет отображать Варна | 10 безлюбые ошибки.

Почему это происходит, поэтому я не могу извлечь какую-либо часть этой строки, чтобы изменить ее? ... Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 11 августа 2011

Вы должны использовать mb_strlen и mb_substr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...