2009-11-04 99 views
2

我有一個簡單的jsp表單,客戶用它向我們發送電子郵件。儘管在某些情況下,電子郵件通過電子郵件文本中零星地顯示的=?ISO-8859-1?Q?文本格式不正確。電子郵件格式的字符編碼問題

我知道ISO-8859-1是一種字符編碼,雖然我不確定這個錯誤是如何發生的並且無法重現這個錯誤。我試圖用Firefox選擇的不同字符編碼來填寫表格,但仍然不能重現。我試圖用中文Win XP語言設置的筆記本電腦來填寫表單,但也無法重現此錯誤。

有沒有人看到這個錯誤或有任何想法我可以重現這個呢? (下)使用的portlet中在weblogic我仍然在尋找一種方式來重現此錯誤或一個理由,爲什麼它的發生,

JSP代碼是直截了當9

-

感謝您的意見

<%@ page language="java" contentType="text/html;charset=UTF-8"%> 
<%@ taglib uri="/WEB-INF/struts-adapter-html.tld" prefix="html"%> 
<%@ page import="java.lang.String" %> 
<html:html> 
<html:head> 
    <title>Feedback Form</title> 
</html:head> 
<html:body> 
    <html:form action="/emailFeedback"> 
      <label>First name </label> 
      <html:text property="forename"/> 
      <label>Surname </label> 
      <html:text property="surname"/> 
      <label>telephone number </label> 
      <html:text property="telephonenumber"/> 
      <label>Zip code</label> 
      <html:text property="zipcode"/> 
      <label>DOB (MM/DD/YYYY)</label> 
      <html:text property="dob" /> 
      <label>Email </label> 
      <html:text property="email"/> 
      <label>Confirm Email </label> 
      <html:text property="confirm_email"/> 
      <label>Subject</label> 
      <html:selectproperty="category"> 
       <html:option value="">select &gt; &gt;</html:option> 
       <html:option value="Test1">Test1</html:option> 
       <html:option value="Test2">Test2 Payments</html:option> 
       <html:option value="Test3">Test3</html:option> 
      </html:select> 
      <html:textarea property="feedback" cols="40" rows="7" /> 
      <input value="Submit your query" type="submit"> 
     </html:form> 
</html:body> 
</html:html> 

電子郵件不正確的電子郵件格式如下(清理個人數據!)

=?ISO-8859-1?Q?=0A=0A______firstname:=09=09tes?= =?ISO-8859-1?Q?t=0A______lastname:=09=09KRA=0A___?= =?ISO-8859-1?Q?___Email:[email protected]?= =?ISO-8859-1?Q?o.fr=0A______DOB:=09=09=09=0A______?= =?ISO-8859-1?Q?telephonenumber:=05=09454465465456=0A?= =?ISO-8859-1?Q?______zipcode:=09=09=0A______T?= =?ISO-8859-1?Q?hree_No:=09=0907533644972=0A______Feedback:_____=0A______h?= =?ISO-8859-1?Q?sample_test_with_underscores_linking_words?= =?ISO-8859-1?Q?9_14.97=sample_test_with_underscores_linking_words?= 

用正確的格式樣本電子郵件低於供參考:

firstnameame: John  
last ame:  Doe 
email:  [email protected] 
DOB:  01/02/1957 
Telephone : 005465465465 
ZIPCODE:  91210 
Feedback:  
Correctly formatted feedback. 

回答

1

ISO-8859-1編碼只覆蓋了標準拉丁字符,而不是中國。爲了涵蓋中國以及世界上其他任何角色,最好使用UTF-8

另請參閱this article瞭解更多技術背景信息,以及若干解決方案如何相應地配置您的JSP/Servlet環境以使用UTF-8

希望這會有所幫助。

+0

感謝BalusC。優秀的職位,完美描述我的問題!我試圖在表單中輸入字符串Český,並且我得到了格式不正確的電子郵件。您的博客所說的解決方案可以在JSP或Web服務器級別實施,以實施UTF-8編碼。 :) – van 2009-11-05 20:25:13

+0

不客氣。不要忘記將問題標記爲已回答:) – BalusC 2009-11-05 20:54:06

+0

如果我可以的話,我也會爲此投票,在我收到此個人資料的代表之後,我會進行投票:) – van 2009-11-06 13:06:57

1

=?ISO-8859-1?Q?text?=MIME encoded-word語法,用於指示文本(介於最後兩個?之間)在可引用的ISO-8859-1中進行編碼,該文本在通常只允許使用ASCII的情況下可打印。

此語法通常用於僅允許爲ASCII的電子郵件標題。

沒有看到電子郵件和生成它們的代碼,有點難以說出問題所在。