Прежде всего, если вы находитесь в & lt; 5.3PHP, то нет. У тебя много проблем, чтобы справиться.
Я удивлен, что никто не упомянул библиотеку intl , которая имеет хорошую поддержку для unicode, графем, строковых операций, локализации и многих других, см. ниже.
Я приведу некоторую информацию о поддержке Unicode в PHP с помощью слайдов Elizabeth Smith в PHPBenelux'14 Хорошо: Плохо : Я обновлю этот ответ, если что-то изменит добавленные функции и так далее. INTL
mb_string
ICONV
stream_filter_append($fp, 'convert.iconv.ISO-2022-JP/EUC-JP')
БАЗЫ ДАННЫХ
Некоторые другие Gotchas
Прошу прощения, но вы не показываете какой-либо соответствующий код, поскольку код, который вы копируете / вставляете, не несет ответственности за указанное вами исключение.
Соответствующая часть заключается в том, что вы используя JSP, и что вы не прочитали важные предупреждения, касающиеся JSP, перечисленные в главе 9 моей книги .
Когда вы пишете JSP, вам, вероятно, нравится пробел и отступ, например:
<% //a line of code %>
<%
// some more code
%>
<% // another line of code %>
<%
response.getOutputStream();
%>
Это всегда вызывает исключение "getOutputStream() has already been called for this response"
независимо от того, используете ли вы iText или нет. Метод getOutputStream()
был назван моментом, когда вы ввели свой первый символ пробела в свой JSP-скрипт.
Чтобы исправить это, вам нужно удалить все пробелы:
<% //a line of code %><%
// some more code
%><% // another line of code %><%
response.getOutputStream();
%>
Ни один символ не принимается вне маркеров <%
и %>
. Как поясняется в лучших руководствах JSP, вы не должны использовать JSP для создания двоичных файлов. Почему нет? Поскольку JSP вводит символы пробела в произвольных местах вашего двоичного файла. Это приводит к повреждению файлов. Вместо этого используйте Servlets!