wso2-esb-sequence-plugin версии 2.0.х, где x>5, при сборке бьет кодировку, превращая заглавные буквы "И" в сиквенсах в кракозябры. Workaround'а, кроме отката на 2.0.4, пока не нашел.
barbitoff programmer`s blog
Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком кодировка. Показать все сообщения
Показаны сообщения с ярлыком кодировка. Показать все сообщения
вторник, 16 февраля 2016 г.
понедельник, 1 октября 2012 г.
Xftp 4: кодировка имен файлов
Чтобы вместо русских букв в именах файлов при подключении к Linux-хостам не появлялись кракозябры, нужно:
File -> Properties -> Options -> Поставить галку "Use UTF-8 encoding"
четверг, 19 апреля 2012 г.
Проблема с бьющейся кодировкой имен загружаемых на сервер файлов при использовании org.apache.commons.fileupload
Проблема:
При обработке загружаемых на сервер файлов с помощью org.apache.commons.fileupload бьется кодировка имен файлов, получаемых вызовом FileItem.getName(). Заголовки запроса кодируются UTF8.
Причина:
Кодировка, используемая org.apache.commons.fileupload при чтении заголовков запроса - это не UTF8, а, по-видимому, системная кодировка (в случае Windows - cp1251). Т.к. имена файлов передаются именно через заголовки (а именно, "Content-Disposition"), то неверное определение кодировки заголовка приводит к ломающейся кодировке имен файлов.
Решение:
Задать явно кодировку ServletFileUpload объекта вызовом метода setHeaderEncoding() перед парсингом запроса методом parseRequest():
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF8");
в
13:34:00
0
коммент.
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest
Ярлыки:
кодировка,
кодировка имен файлов,
Apache Commons,
Apache Commons FileUpload,
cp1251,
encoding,
FileItem.getName,
J2EE,
Java,
JSP file upload,
multipart/form-data,
utf8
пятница, 13 апреля 2012 г.
Tomcat 6 на Debian Squeeze / Mint 13
Особенности томката 6, поставленного из репозиториев Debian Squeeze / Mint 13:
- CATALINA_HOME: /usr/share/tomcat6 - директории /lib и /bin
- CATALINA_BASE: /var/lib/tomcat6 - директории common, conf, logs, server, shared, webapps, work. При этом часть из них - симлинки:
- В /etc/tomcat6/server.xml нет UTF-8 для коннектора AJP, поэтому необходимо его добавить, если используется проксирование по AJP и русские символы в параметрах запросов (по-умолчанию используется ISO-8859-1):
- Может показаться, что параметры JVM можно задать в /etc/init.d/tomcat6 (в строке JAVA_OPTS = ...), однако это не так, т.к. заданные в этой строке опции затираются ниже по скрипту значениями из файла умолчаний:
Файл умолчаний расположен в /etc/default/tomcat6 и задает опции:JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC"
Поэтому опции JVM нужно менять либо в нём, либо в /etc/init.d/tomcat6, уже после загрузки опций из файла умолчаний.

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="7781" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="UTF-8" />
в
12:17:00
0
коммент.
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest
Ярлыки:
кодировка,
кодировка Tomcat,
AJP,
Debian,
encoding,
J2EE,
Java,
Linux,
Linux Mint,
Linux Mint 13,
server.xml,
Tomcat,
tomcat defaults,
Tomcat URIEncoding,
utf8,
Xmx
вторник, 28 февраля 2012 г.
Ломающаяся кодировка при использовании jsp:param для передачи параметра включаемой странице
Проблема:
Решение:
На всех jsp-страницах перед работой с параметрами запроса / включением других страниц (а лучше просто первой строчкой кода страницы) необходимо явно задавать кодировку запроса как UTF-8:
При включении страницы тегом jsp:include с передачей ей параметров с помощью jsp:param бьются нелатинские символы в значении параметра, хотя все jsp-страницы используют кодировку UTF-8 и в server.xml для коннектора установлено URIEncoding ="UTF-8". При этом если вызывать включаемую страницу непосредственно и передавать ей эти же параметры с помощью GET, кодировка не бьется.
Решение:
На всех jsp-страницах перед работой с параметрами запроса / включением других страниц (а лучше просто первой строчкой кода страницы) необходимо явно задавать кодировку запроса как UTF-8:
<%
request.setCharacterEncoding("UTF-8");
%>
понедельник, 6 февраля 2012 г.
Кодировка GET параметров в Tomcat 6
Не знаю, можно ли в томкате, как в Glassfish, настраивать кодировку параметров на уровне веб-приложения (http://barbitoff.blogspot.com/2011/07/postget-glasshfish-2.html), но на уровне всего сервера кодировка GET-параметров настраивается атрибутом URIEncoding коннектора в server.xml (http://tomcat.apache.org/tomcat-6.0-doc/config/http.html). Например, для UTF-8:
<Connector URIEncoding ="UTF-8" ... />
Много полезной информации по кодировкам в Tomcat есть тут: http://wiki.apache.org/tomcat/FAQ/CharacterEncoding.
вторник, 24 января 2012 г.
Регулярные выражения в Java: удаление из строки не-ASCII символов
Удаление из строки всех символов, не входящих в набор ASCII, можно сделать с помощью регулярного выражения, использовав POSIX класс символов \p{ASCII}:
mystr.replaceAll("[^\\p{ASCII}]", "");
суббота, 24 сентября 2011 г.
Установка кодировки JDBC-ODBC
Установка настройки соединения для JDBC-ODBC моста осуществляется через Properties при создании соединения:
java.util.Properties connInfo = new java.util.Properties();Установленная таким образом кодировка повлияет на все символьные данные, получаемые / передаваемые с помощью этого соединения (в частности на то, какую кодировку будет использовать метод ResultSet.getString() при формировании строки).
connInfo.put("charSet", "Cp1251");
connInfo.put("user", login);
connInfo.put("password", pass);
conn = DriverManager.getConnection(URL,connInfo);
Java - преобразование строки из одной кодировки в другую
Пример: преобразование строки oldString в кодировке UTF-8 в строку newString в кодировке cp1251:
String newString = new String(oldString.getBytes("UTF-8"), "Cp1251");
среда, 20 июля 2011 г.
cp1251 в php + utf8 в PostgreSQL
Проблема: БД использует кодировку UTF-8, php-страница, на которой нужно отображать данные из БД - cp1251.
Решение: в строку соединения с БД postgres добавить опцию options='--client_encoding=WIN', т.е. получится нечто вроде:
pg_connect("host=some_host port=5432 user=root password=root dbname=mydb options='--client_encoding=WIN'");
Решение: в строку соединения с БД postgres добавить опцию options='--client_encoding=WIN', т.е. получится нечто вроде:
pg_connect("host=some_host port=5432 user=root password=root dbname=mydb options='--client_encoding=WIN'");
пятница, 15 июля 2011 г.
Кодировка POST/GET параметров в Glasshfish 2
Проблема: при передаче из формы данных на JSP-страницу русские символы превращаются в чепуху, хотя кодировки всех страниц - UTF-8. Причем это случается только при использовании в качестве контейнера Glassfish, с Tomcat 6 все нормально.
Решение: в файл sun-web.xml проекта вставить следующие строчки в блок <sun-web-app>:
<locale-charset-info>
<locale-charset-map locale="" charset=""/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
Решение: в файл sun-web.xml проекта вставить следующие строчки в блок <sun-web-app>:
<locale-charset-info>
<locale-charset-map locale="" charset=""/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
Подписаться на:
Сообщения (Atom)
