У меня есть веб-сайт wordpress.PHP: strlen возвращает длину символа вместо длины байта
Я создал шаблон простой страницы, как:
<?php
/**
* Template Name: Test
*/
echo strlen('Привет');
?>
Затем я создал страницу, используя этот шаблон. На странице показана длина русской строки «Привет» (означает «Hello»). Я ожидаю увидеть 12, поскольку кодированная русская строка UTF-8, состоящая из 6 символов, должна иметь размер 12 байт, но вместо этого я получаю 6.
Я тестировал одно и то же на другом сервере и имел правильное значение - 12. Поэтому я считаю, что причиной является конфигурация моего сервера. У меня есть wp 3.2.1 (у меня была такая же проблема после обновления до wp 3.5.1) и PHP 5.3.3.
В настоящее время я провел около 5 дней, пытаясь найти решение, но не повезло. Кто-нибудь знает, в чем причина такого поведения?
Возможный дубликат [Как получить байтовые значения строки в PHP?] (http://stackoverflow.com/questions/591446/how-do-i- get-the-byte-values-of-a-string-in-php) – Neal
@Neal - этот вопрос не имеет ничего общего с ord() –