code_junkie

How to get UTF-8 working in java webapps?

Nov 11th, 2011
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. <Connector port="8080" maxHttpHeaderSize="8192"
  2. maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  3. enableLookups="false" redirectPort="8443" acceptCount="100"
  4. connectionTimeout="20000" disableUploadTimeout="true"
  5. compression="on"
  6. compressionMinSize="128"
  7. noCompressionUserAgents="gozilla, traviata"
  8. compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
  9. URIEncoding="UTF-8"
  10. />
  11.  
  12. https://localhost:8443/ID/Users?action=search&name=*ж*
  13.  
  14. package fi.foo.filters;
  15.  
  16. import java.io.IOException;
  17. import javax.servlet.Filter;
  18. import javax.servlet.FilterChain;
  19. import javax.servlet.FilterConfig;
  20. import javax.servlet.ServletException;
  21. import javax.servlet.ServletRequest;
  22. import javax.servlet.ServletResponse;
  23.  
  24. public class CharsetFilter implements Filter
  25. {
  26. private String encoding;
  27.  
  28. public void init(FilterConfig config) throws ServletException
  29. {
  30. encoding = config.getInitParameter("requestEncoding");
  31.  
  32. if( encoding==null ) encoding="UTF-8";
  33. }
  34.  
  35. public void doFilter(ServletRequest request, ServletResponse response, FilterChain next)
  36. throws IOException, ServletException
  37. {
  38. // Respect the client-specified character encoding
  39. // (see HTTP specification section 3.4.1)
  40. if(null == request.getCharacterEncoding())
  41. request.setCharacterEncoding(encoding);
  42.  
  43.  
  44. /**
  45. * Set the default response content type and encoding
  46. */
  47. response.setContentType("text/html; charset=UTF-8");
  48. response.setCharacterEncoding("UTF-8");
  49.  
  50.  
  51. next.doFilter(request, response);
  52. }
  53.  
  54. public void destroy(){}
  55. }
  56.  
  57. <!--CharsetFilter start-->
  58.  
  59. <filter>
  60. <filter-name>CharsetFilter</filter-name>
  61. <filter-class>fi.foo.filters.CharsetFilter</filter-class>
  62. <init-param>
  63. <param-name>requestEncoding</param-name>
  64. <param-value>UTF-8</param-value>
  65. </init-param>
  66. </filter>
  67.  
  68. <filter-mapping>
  69. <filter-name>CharsetFilter</filter-name>
  70. <url-pattern>/*</url-pattern>
  71. </filter-mapping>
  72.  
  73. <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
  74.  
  75. <?xml version="1.0" encoding="UTF-8"?>
  76. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  77. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">
  78. <head>
  79. <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
  80. ...
  81.  
  82. <Resource name="jdbc/AppDB"
  83. auth="Container"
  84. type="javax.sql.DataSource"
  85. maxActive="20" maxIdle="10" maxWait="10000"
  86. username="foo"
  87. password="bar"
  88. driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/ ID_development?useEncoding=true&characterEncoding=UTF-8"
  89. />
  90.  
  91. CREATE DATABASE `ID_development`
  92. /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci */;
  93.  
  94. CREATE TABLE `Users` (
  95. `id` int(10) unsigned NOT NULL auto_increment,
  96. `name` varchar(30) collate utf8_swedish_ci default NULL
  97. PRIMARY KEY (`id`)
  98. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci ROW_FORMAT=DYNAMIC;
  99.  
  100. [client]
  101. port=3306
  102. default-character-set=utf8
  103.  
  104. [mysql]
  105. default-character-set=utf8
  106.  
  107. DELIMITER $$
  108.  
  109. DROP FUNCTION IF EXISTS `pathToNode` $$
  110. CREATE FUNCTION `pathToNode` (ryhma_id INT) RETURNS TEXT CHARACTER SET utf8
  111. READS SQL DATA
  112. BEGIN
  113.  
  114. DECLARE path VARCHAR(255) CHARACTER SET utf8;
  115.  
  116. SET path = NULL;
  117.  
  118. ...
  119.  
  120. RETURN path;
  121.  
  122. END $$
  123.  
  124. DELIMITER ;
  125.  
  126. https://localhost:8443/ID/Users?action=search&name=Petteri
  127. https://localhost:8443/ID/Users?action=search&name=ж
  128.  
  129. https://localhost:8443/ID/Users?action=search&name=*Päivi*
  130.  
  131. https://localhost:8443/ID/Users?action=search&name=*P%E4ivi*
  132.  
  133. <connection-url>jdbc:mysql://192.168.10.123:3308/mydatabase</connection-url>
  134. <driver-class>com.mysql.jdbc.Driver</driver-class>
  135. <user-name>nts</user-name>
  136. <password>xaxaxa!</password>
  137. <connection-property name="useUnicode">true</connection-property>
  138. <connection-property name="characterEncoding">greek</connection-property>
  139.  
  140. jdbc:mysql://192.168.10.123:3308/mydatabase?characterEncoding=greek
  141.  
  142. <%@page contentType="text/html"%>
  143. <%@page pageEncoding="UTF-8"%>
  144.  
  145. convmv --notest -f cp1252 -t utf8 * -r
  146.  
  147. DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  148. Connection conn = DriverManager.getConnection(
  149. "jdbc:mysql://192.168.1.12:3308/mydb?characterEncoding=greek",
  150. "Myuser", "mypass");
  151.  
  152. DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  153. Connection conn = DriverManager.getConnection(("jdbc:mysql://192.168.1.1:3308/nts?characterEncoding=greek","myuser","mypass");
Add Comment
Please, Sign In to add comment