|
|
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Кто сталкивался с проблемой кодировки русских букв при отправки письма из формы jsp и сервлета, используя JavaMail?? какую магию применить? при отсылке, на почту приходят или "?????" или непонятные символы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 22:08:06 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Попробуй отправить письмо содержащее два алвафита. Код: java 1. 2. И покажи что вернулось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 02:26:13 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013, Код покажите, пжл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 08:46:48 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
MimeMessage message = new MimeMessage(session); message.setSubject(subject, "UTF-8"); message.setHeader("Content-Type", "text/plain; charset=UTF-8"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 09:34:27 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
да перед отправкой надо есче убедится что строки взятые из request form в правильной кодировке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 09:54:09 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
в спринге аналогичная проблема полечилась добавлением <property name="defaultEncoding" value="UTF-8" /> в spring-servlet.xml <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="..." /> <property name="port" value="25" /> <property name="defaultEncoding" value="UTF-8" /> </bean> Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 12:51:07 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
mayton, когда отправляю латинские буквы, всё ок. А когда вписываю на русском имя, тему и текст, то только на почте тема письма иероглифами видна, а всё остальное русские буквы передаёт. Вот фрагмент из кода Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 13:27:47 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
GKS_Samara, но у меня это не спринговский проект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 13:28:13 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013, замените в Код: java 1. на вызов Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 13:55:41 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, llemingда перед отправкой надо есче убедится что строки взятые из request form в правильной кодировке а что значит убедиться вы написали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 14:48:57 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013а что значит убедиться вы написали? Остановить в режиме отладки и посмотреть, что строки содержат валидные данные и проблема именно в JavaMail, а не где-то ещё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 14:52:42 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, опишите как это сделать или ссылку киньте плиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:09:45 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, борьба с кодировкой продолжается..смотрите что происходит: у меня есть по умолчанию в пропертях русские данные о теме и сообщении письма, и те, что ввожу в форму..так вот если по умолчанию отсылаю, то отображаются русские буквы в теме, а в сообщении нет(????), а если через форму ввожу русские буквы - то наоборот, на почте проверяю - сообщение видно на русском, а теме вопросиками..что делать? сам проект в свойвствах UTF-8 стоит. И вот из кода кое-что: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 19:35:17 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013, Т.е. пошаговой отладкой ещё предстаит научиться пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 20:03:15 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я посмотрел видео, что вы дали..там лёгкие примеры..но я не пойму как её использовать в моём случае чтобы подобрать нужную кодировку, которая передасть не "абрукадабру" на мою почту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 20:06:35 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
прежде чем слать сообщение надо убедиться что томкат не перекодировал строки из важей формы в jsp неправильно вариантов несколько как это сделать одни из них поставить дебагинг и точку оствановки сразу после того как получите тему и тело сообщения из jsp в сервлете( или где там у вас обработчик) в момент остановки посмотреть локальные переменые тема и тело сообщения, читаются они или там тоже крякозябры если форма отдает в запросе POST То request.setCharacterEncoding('UTF-8') помогает правильно раскодировать (при условии что Jsp отдается в UTF-8), если в get то там скорее всего Tomcat подпортит строку и ее надо будет декодирjвать лично я стразу в эклипсу ставлю utf-8 для всех проектов по умплочанию а также прописываю в pom чтобы легче было искать где что пошло не так, так сказать точка опоры кодировка utf-8 по факту на stackoverflow жаловались что subject в почтовых сообщениях не кодируется правильно но уменя сразу без проблем заработало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 21:04:12 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
вот это вот часть фразы меня напрягает "у меня в пропертях" это значит что тема и тело сообщения в файле properties? если да то там проблемка метод Load использует кодировку по умолчанию public void load(InputStream inStream) throws IOException Reads a property list (key and element pairs) from the input byte stream. The input stream is in a simple line-oriented format as specified in load(Reader) and is assumed to use the ISO 8859-1 character encoding; that is each byte is one Latin1 character. Characters not in Latin1, and certain special characters, are represented in keys and elements using Unicode escapes as defined in section 3.3 of The Java™ Language Specification. а шлем в utf? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 21:07:34 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, что такое шлем? в .properties у меня дефолтное название темы и контент, и если я ничё не ввожу в форму, а просто жму "отправить", то на почте тема приходит нормально на русском, а контент(текст) отображается вопросиками("????")..а если ввиду в форму тему и контент, то наоборот вижу когда проверяю почту свою - контент вопросами, а тема не отображается) и я сделал дебаг, он показал сразу иероглифы, там где соответственно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 21:27:33 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013что такое шлем? Ну, можно шапочку из фольги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 21:33:24 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Вы шлем мэкл пользуясь данными как из Properties файла так и со странички. Где несовпадают кодирвки так что неудивительно что вылазиют крякозябры вот так вот загрузить Properties в UTF-8 Код: java 1. 2. 3. 4. а вот так страничку jsp в UTf-8 отобразить <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%> и затем <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ..... </head> Tomcat по умолчанию как я уже говорил декодирует в ISO-8859-1 поэтому либо пишем фильтр который все запросы перехватывает и выполняет Код: java 1. либо настараиваем томкат хитрым образом (гуглить как) это при условии что форма get опять таки если форма отсылает в get то request.setCharacterEncoding не поможет так как параметры идут в адресной строке а ее томкат по умолчанию берет как в ISO-8859_1 там уже надо перекодировать параметр т.е. данные пришли кодированными в utf-8, томкат байты перевел в символы как iso-8859-1 String mailBody = request.getParameter("mailbody"); String nValue = new String(mailBody.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 21:37:15 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
llemingчет совсем криво пишуДа... и по орфографии, и по смыслу... ) По-моему вы бисер мечете... Надо просто убедится, что кодировка не полетела до отправки через JavaMail. Это либо через отладку, либо через логгирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 23:27:12 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
WGAllemingчет совсем криво пишуДа... и по орфографии, и по смыслу... ) По-моему вы бисер мечете... Надо просто убедится, что кодировка не полетела до отправки через JavaMail. Это либо через отладку, либо через логгирование. не совсем мечу чувак просто оправляет мэйл двумя способами 1. берет данные из jsp формы 2. берет данные из Properties файла соотвественно где то у него данные в одной кодировке, а где то в другой. поэтому у него и прыгает то одном то вдругом случае выводятся крякозаблы.. я его к мысли и подвожу что следует подогнать все к одной кодировке либо перекодировать данные при поступлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 23:34:09 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, llemingтам уже надо перекодировать параметр т.е. данные пришли кодированными в utf-8, томкат байты перевел в символы как iso-8859-1 String mailBody = request.getParameter("mailbody"); String nValue = new String(mailBody.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); когда делаю таким образом, то после импорта библиотеки import sun.nio.cs.StandardCharsets, эклипс подчёркивает как ошибку ISO_8859_1 и UTF_8 форма у меня методом post.. когда я в jsp ставлю энкодинг utf-8, тогда вообще всё на почту приходит кракозябрами, а если кбираю с jsp все энкодинги вместе с метой, тогда на почту нормально хоть тема хоть сообщение письма отображается на русском ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 13:22:48 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
WGA, Добился того, что при отсылке почты, дефолтные(которые в mybundle.properties) тема и контент, присылаются на почту в русском виде, и в коде такая штука ещё прописана java.io.PrintWriter out = response.getWriter(); out.println("Hello " + request.getParameter("UserName") + ", your message have sent!!"); так вот, после отсылке почты, когда ввёл имя с формы тоже русскими отобразилось оно - Hello, Александр, your message have sent!! а вот если ввожу в форму тема или контент, то они приходят на почту в таком виде - ãíåíã а если ставлю такое в jsp - <%@ page contentType="text/html;charset=UTF-8"%>, тогда и имя, введёное из формы отображается ãíåíã ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 15:15:58 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013, очень сложно понять что и как у вас происходит. По факту где то строка у неправильно перекодируется и нужно найти где. У вас два источника данных 1. веб форма 2. файл properties нужно опредлиться в какой кодировке файл пропертиес и в какой кодировке браузер отправляет симовлы из формы. самый простой способ как уже было сказано это дебагиинг ставите точку оставноки после того как извлекли данные из запроса и смотрите соостояние переменных читаемые ли присланные данные или нет ставите точку остановки после того как загрузили файл пропертиес и смотрите читаемые ли данные Код: java 1. 2. 3. здесь может быть несколько вариантов почему так происходит и угадать в каком из них ваш случай без кода не получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 20:00:05 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, ну так я и сделал дебаг llemingставите точку оставноки после того как извлекли данные из запроса и смотрите соостояние переменных читаемые ли присланные данные или нет здесь нечитаемые subject и content llemingставите точку остановки после того как загрузили файл пропертиес и смотрите читаемые ли данные а тут читаемые и что теперь делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 20:45:42 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
в какой кодировке jsp страница? если в UTf-8 то перед тем как получить данные из запроса выполните request.setCharacterEncoding("UTF-8") снова делайте дебаг и смотрите читаемые ли данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 21:12:00 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, сделал, снова нечитаемые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 21:47:21 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
lleming, перед дебагом request.setCharacterEncoding("UTF-8") добавил в сервлет сразу после protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 21:48:41 |
|
||
|
JavaMail
|
|||
|---|---|---|---|
|
#18+
Fyn2013А когда вписываю на русском имя, тему и текст, то только на почте тема письма иероглифами виднаГлюкофича обоих аутлуков, требующая обёртывания заголовков в base64. Можно и в qp, но base64 - компактнее. Глюкофича "освящена" стандартным порядком mime-заголовков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 18:33:46 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2127966]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 323ms |

| 0 / 0 |
