Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 宽带UTF-8编码_Java_Encoding_Broadleaf Commerce - Fatal编程技术网

Java 宽带UTF-8编码

Java 宽带UTF-8编码,java,encoding,broadleaf-commerce,Java,Encoding,Broadleaf Commerce,当我试图在Broadleaf Admin中添加一个offer时,名称或描述中的欧元符号(€)在保存后会转换为, 奇怪的是,在保存此提供的代码时,不会出现这种行为。例如: 我创建了一个名为“5欧元促销”的促销活动 保存后,我将得到:5促销(坏) 我在这个宣传片中添加了一个名为“5欧元代码”的代码 保存后,它将如下所示:€5 code(好) 我认为它与保存有关,因为当我修改数据库中的字段时,它会正确显示。当我试图编辑它并保存时,奇怪的符号会再次接管 编辑1 杰里奥斯非常接近解决方案。我唯一需要添

当我试图在Broadleaf Admin中添加一个offer时,名称或描述中的欧元符号(€)在保存后会转换为

奇怪的是,在保存此提供的代码时,不会出现这种行为。例如:

  • 我创建了一个名为“5欧元促销”的促销活动
  • 保存后,我将得到:
    5促销
    (坏)
  • 我在这个宣传片中添加了一个名为“5欧元代码”的代码
  • 保存后,它将如下所示:
    €5 code
    (好)
我认为它与保存有关,因为当我修改数据库中的字段时,它会正确显示。当我试图编辑它并保存时,奇怪的符号会再次接管

编辑1

杰里奥斯非常接近解决方案。我唯一需要添加的东西(在他的解决方案旁边)是我的web.xml中的以下代码:

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
编码滤波器
/*

问题在于应用程序在进入数据库时编码不正确。如果您使用的是Tomcat,请在
context.xml
中将ConnectionProperties添加到您的资源中。这将编码为UTF-8,并允许特殊字符正确保存在数据库中。以下是一个示例:

<Resource name="jdbc/web" auth="Container" type="javax.sql.DataSource"
           maxActive="30" maxIdle="60" maxWait="10000"
           username="username" password="password" driverClassName="com.mysql.jdbc.Driver"
           connectionProperties="useUnicode=true;characterEncoding=utf8;"
           url="jdbc:mysql://localhost/broadleaf"/>
<Connector port="8080" protocol="HTTP/1.1"
          connectionTimeout="20000"
          redirectPort="8443" 
          URIEncoding="UTF-8"/>
这与下面这个伟大的答案有关,它涵盖了java webapps中的UTF-8:


希望这有帮助

谢谢你的快速回复,但似乎不起作用。还是一样的行为。请注意,它并非无处不在,数据库中还正确存储了其他带有欧元符号的字段。这与my web.xml中的其他(类似)代码相结合,实现了这一目的。谢谢