У швов, похожих на sprintf, есть проблема с персонажами с прогибами? Или я делаю что-то неправильно? Похоже, что это работает при удалении таких символов, как åäö. Должно ли это быть необходимым?
Я хочу, чтобы следующие строки были правильно выровнены для отчета:
2011-11-27 A1823 -Ref. Leif - 12 873,00 18.98 2011-11-30 A1856 -Rättat xx - 6 594,00 19.18
Я использую sprintf () следующим образом: % -12s% -8s -% – 10s -% 20s% 8.2f
Использование: php-5.3.23-nts-Win32-VC9-x86
Строки в PHP – это в основном массивы байтов (а не символы). Они не могут работать из-за многобайтовых кодировок (например, UTF-8).
Подробнее см .:
https://secure.php.net/manual/en/language.types.string.php#language.types.string.details
Большинство строковых функций в PHP имеют многобайтовый эквивалент (с префиксом mb_
). Но sprintf
этого не делает.
Существует комментарий пользователя («веб-мастер в сети cafe-clope dot net») с многобайтовой реализацией sprintf
на странице документации функции на php.net. Это может сработать для вас:
https://secure.php.net/manual/en/function.sprintf.php#55837