我有MySQL 5.5墨盒与以下postrongtart_mysql (.openshiftaction_hookspostrongtart_mysql):
echo "********MySQL_config post_start_mysql it's running."/usr/bin/mysql -h "127.8.237.2" -u "adminc5aiLd5"
--password="bcHxwMCKLpJ4" -P 3306
-e 'SET NAMES "utf8"; SET CHARACTER SET utf8; SET GLOBAL character_set_client=utf8, character_set_database=utf8, character_set_results=utf8, character_set_connection=utf8, character_set_server=utf8, collation_server=utf8_general_ci; SET character_set_client=utf8, character_set_results=utf8, character_set_connection=utf8, character_set_server=utf8, collation_server=utf8_general_ci, collation_database=utf8_general_ci;'
在我的context.xml (webappMETA-INFcontext.xml)中,我有:
<Resource name="jdbc/currencyexchange"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://x.x.x.x:3306/xxx?autoReconnect=true"
connectionProperties="useEncoding=true&characterEncoding=UTF-8;"
username="xxx"
password="xxx"
maxActive="100" maxIdle="30" maxWait="10000"
/>
作为结果:
mysql> show variables like '%character%';
+--------------------------+------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /opt/rh/mysql55/root/usr/share/mysql/charsets/ |
+--------------------------+------------------------------------------------+
我有以下pre_start_jbossews 2.0墨盒(.openshiftaction_hookspre_start_jbossews):
echo "*******jboss_Config pre_start_jboss it's running."
export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dorg.apache.catalina.connector.URIEncoding=UTF-8 -Dorg.apache.catalina.connector.useBodyEncodingForURI=true"
在我的server.xml (.openshiftconfigserver.xml)我有:
<Connector address="${OPENSHIFT_JBOSSEWS_IP}"
port="${OPENSHIFT_JBOSSEWS_HTTP_PORT}"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
my web.xml (webappWEB-INFweb.xml):
<filter>
<filter-name>CharsetFilter</filter-name>
<filter-class>xx.xxx.xxx.filter.CharsetFilter</filter-class>
<init-param>
<param-name>requestEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
CharsetFilter.java:
public class CharsetFilter implements Filter
{
private String encoding;
public void init(FilterConfig config) throws ServletException
{
encoding = config.getInitParameter("requestEncoding");
if( encoding==null ) encoding="UTF-8";
}
public void doFilter(ServletRequest request,
ServletResponse response, FilterChain next)
throws IOException, ServletException
{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
next.doFilter(request, response);
}
public void destroy(){}
}
my hibernate prop:
<util:properties id="hibernateProperties">
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
<prop key="hibernate.connection.CharSet">utf8</prop>
<prop key="hibernate.connection.characterEncoding">utf8</prop>
<prop key="hibernate.connection.useUnicode">true</prop>
<prop key="hibernate.show_sql">false</prop>
</util:properties>
作为结果:在这里输入图像描述输入图片描述
问题是在请求mysql:
.UpdateClient("update clients set name='???????'....")
如果你们中有人能帮我解决这个问题,我将非常感激。 <Resource name="jdbc/currencyexchange"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/${OPENSHIFT_APP_NAME}?autoReconnect=true&useEncoding=true&characterEncoding=UTF-8
username="xxx"
password="xxx"
maxActive="100" maxIdle="30" maxWait="10000"
/>