powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / commons-fileupload. Трабл с кодировками полей на win русские нормально, на unix - вопросы.
3 сообщений из 3, страница 1 из 1
commons-fileupload. Трабл с кодировками полей на win русские нормально, на unix - вопросы.
    #33329105
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите из-за чего может происходить.

Делаю upload файла + информация из поля

<FORM method="post" action="/test/upload_test/.jsp" encType="multipart/form-data">
<INPUT type="file" name="file">
<INPUT type="text" name="russian_text">
<INPUT type="submit">
</FORM>

Дальше парсю реквест:

Код: plaintext
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.
ParametersMap parameters =  new  ParametersMap();
		
	   FileUploadBase  fu =   new  DiskFileUpload();
		    
	   List items =  null ;
	   
	   List dhs =  new  ArrayList();
	    	  
	   
	     try {
	    items = fu.parseRequest(request);
	    }  catch  (Exception e){
	    	 throw   new  ServletException("Request parsing error",e);
	    }
	     
	     for  ( int  i= 0 ;i<items.size();i++){
	    	
	    	
	    	
	    	FileItem item = (FileItem)items.get(i);
	    	
	    	
	    	
	    	 if  (item.isFormField()) {
	    		
	    		parameters.put(item.getFieldName(),item.getString());
	    		
	    	}
			
	    	 if  ((!item.isFormField())) {
	    		
	    		DataHandler dh =  new  DataHandler( new  FileItemDataSource(item));
	    		dhs.add(dh);
	    		
	    	}
	    		
	   	}

Далее отправляю то что напарсил почтой:

Код: plaintext
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.
53.
54.
55.
56.
57.
58.
Properties props =  new  Properties();
		props.put("mail.smtp.host","mail.myhost.ru");
		Session session=Session.getInstance(props, null );
					
		Message message =  new  MimeMessage(session);
		
		Multipart multipart =  new  MimeMultipart();
		
		//Body part
		
		MimeBodyPart textPart =  new  MimeBodyPart();
		
		 try {
		textPart.setContent("_bodyText", "text/plain");	
		textPart.setText(messageBody,"windows-1251");
		}  catch  (Exception e){
			 throw   new  ServletException("Bad content",e);
		}
		
		//Attachments parts
		
		 for  ( int  i= 0 ;i<dhs.size();i++){
			
			BodyPart bodyPart =  new  MimeBodyPart();
			
			DataHandler datahandler = (DataHandler) dhs.get(i);
			 try {
			bodyPart.setDataHandler(datahandler);
			
			multipart.addBodyPart(bodyPart);
			
			}  catch  (Exception e){
				
			 throw   new  ServletException(e);
			}
		
		}
		
		
		
		 try {
		
		multipart.addBodyPart(textPart);
		message.setContent(multipart);
		
		message.setSubject("sbj");
		message.setFrom( new  InternetAddress("myaddress@myhost.ru"));
		message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("myaddress1@myhost.ru", false));
		
		MailThread mth =  new  MailThread(message);
		
		mth.setDaemon(true);
		
		mth.start();
		
	}  catch  (Exception e){
		
	 throw   new  ServletException(e);
	}

Дак вот, когда тестирую на свой машине, на которой стоит Tomcat4.1 WinXPSp2 - все отлично и письмо приходит в нормальой кодировке.

Когда выгружаю под UNIX овский Tomcat4.1 Вместо этого поля на русском языке приходят ?????????

Подскажите, где может быть трабл с кодировкой? В формировании письма:
Код: plaintext
textPart.setText(messageBody,"windows-1251");

Либо в получении Strng из массива байтов:
parameters.put(item.getFieldName(),item.getString());

Пробовал ставить latin1,Cp1251 здесь:
parameters.put(item.getFieldName(),item.getString("latin1"));

но тогда тоже дут кракозябры.

А может быть проблема вобще в другом - каких нибудь настройках томката?
...
Рейтинг: 0 / 0
commons-fileupload. Трабл с кодировками полей на win русские нормально, на unix - вопросы.
    #33329133
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть предположение, что поможет:

Код: plaintext
parameters.put(item.getFieldName(),item.getString(request.getCharacterEncoding());

Завтра проверю.
...
Рейтинг: 0 / 0
commons-fileupload. Трабл с кодировками полей на win русские нормально, на unix - вопросы.
    #33334168
ska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TurnЕсть предположение, что поможет:

Код: plaintext
parameters.put(item.getFieldName(),item.getString(request.getCharacterEncoding());



Есть предположение, что (особливо в Tomcat) request.getCharacterEncoding() вернет тебе null. А собственно оттуда и все проблемы.
Или делай перекодировку сам или (до разборки !) request.setCharacterEncoding
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / commons-fileupload. Трабл с кодировками полей на win русские нормально, на unix - вопросы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]