My problem is UTF-8 data submitted correctly sometimes but sometimes the strings are broken.
When submitted correctly it looks like this: আনোয়ার/好/我是一個好男孩 but in times of incorrect form submit it looks like: à¦à¦¨à§à§à¦¾à¦°
Database Configuration for UTF-8 :
In MySql : Charset: utf-8
collation: utf8_general_ci
My application.properties file:
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url =jdbc:mysql://localhost:3306/icdb?useUnicode=true&characterEncoding=UTF-8&connectionCollation=utf8_general_ci&characterSetResults=utf8 jdbc.username = root
jdbc.password =password
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.show_sql = true
hibernate.format_sql = true
This is my SpringMvcInitializer class:
public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encoding-filter", new CharacterEncodingFilter());
encodingFilter.setInitParameter("encoding", "UTF-8");
encodingFilter.setInitParameter("forceEncoding", "true");
encodingFilter.addMappingForUrlPatterns(null, false, "/*");
}
In Controller:
@RequestMapping(value = "/saveNewOrder", produces = {"application/json; charset=UTF-8"}, method = RequestMethod.POST)
public String saveNewOrder(HttpServletRequest request, @Valid CatMenuSelection catMenuSelection, CatMenuSelectionExtra catMenuSelectionExtra, Model m, BindingResult result)
The JSP file looks like:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<form:form action="saveNewOrder" method="post" modelAttribute="catMenuSelection" acceptCharset="UTF-8">
<table class="table">
<form:hidden name="iddd" path="id"/>
<div class="col-lg-12">
<div class="form-group row">
<div class="col-lg-1"><label><fmt:message key="catering.lalel.people" /></label></div>
<div class="col-lg-3">
<form:input path="totalGuest" id="popleId" class="col-lg-2 form-control " style="width: 76px; height: 32px" required="true"/>
<!-- <div class="col-lg-1">
<%--<form:errors path="totalGuest" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1">
<select id="typeId" style="width: 76px; height: 25px" name="distributionType" required="true">
<option value="V.I.P"><fmt:message key="catering.lalel.vip" /></option>
<option value="Packet"><fmt:message key="catering.lalel.packet" /></option>
<option value="Public"><fmt:message key="catering.lalel.public" /></option>
</select>
</div>
</div>
<!-- <div class="col-lg-1">
<%--<form:errors path="distributionType" cssclass="error"></form:errors>--%>
</div>-->
<!--</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.date" /></label></div>
<div class="col-lg-3">
<form:input path="occassionDate" class="datepicker form-control" style="width: 170px" required="true"/>
</div>
<!-- <div class="col-lg-1">
<%--<form:errors path="occassionDate" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.time" /></label></div>
<div class="col-lg-3">
<select name="occassionTime" style="width: 170px; height: 32px" required="true">
<option value="Morning"><fmt:message key="catering.lalel.morning" /></option>
<option value="Noon"><fmt:message key="catering.lalel.noon" /></option>
<option value="Evening"><fmt:message key="catering.lalel.evening" /></option>
<option value="Night"><fmt:message key="catering.lalel.night" /></option>
</select>
</div>
<!-- <div class="col-lg-1">
<%--<form:errors path="occassionTime" cssclass="error"></form:errors>--%>
</div>-->
</div>
<div class="form-group row">
<div class="col-lg-1"><label><fmt:message key="catering.lalel.event" /></label></div>
<div class="col-lg-3"><form:input path="occassion" class="form-control" style="width: 170px" required="true"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="occassion" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.name" /></label></div>
<div class="col-lg-3"><form:input path="customerName" class="form-control" style="width: 170px" required="true" /></div>
<!--cusname-->
<!--<div class="col-lg-1">
<%--<form:errors path="customerName" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.place" /></label></div>
<div class="col-lg-3"><form:input path="occassionPlace" class="form-control" style="width: 170px" required="true"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="occassionPlace" cssclass="error"></form:errors>--%>
</div>-->
</div>
<div class="form-group row">
<div class="col-lg-1"><label><fmt:message key="catering.lalel.vipprice" /></label></div>
<div class="col-lg-3"><form:input path="guestPrice" id="vipPriceId" class="form-control " style="width: 170px" required="true"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="guestPrice" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label ><fmt:message key="catering.lalel.packetprice" /></label></div>
<div class="col-lg-3"><form:input path="driverPrice" id="packetPriceId" class="form-control" style="width: 170px" placeholder="Packet Price" required="true"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="driverPrice" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.driver" /></label></div>
<div class="col-lg-3"><form:input path="totalDriver" id="driverId" class="form-control " style="width: 170px" required="true"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="totalDriver" cssclass="error"></form:errors>--%>
</div>-->
</div>
<div class="form-group row">
<div class="col-lg-1"><label><fmt:message key="catering.lalel.grosstotal" /></label></div>
<div class="col-lg-3"><form:input path="grossTotalAmnt" id="grossTotalId" class="form-control " style="width: 170px" required="true"/></div>
<div class="col-lg-1"><label><fmt:message key="catering.lalel.phone" /></label></div>
<div class="col-lg-3"><form:input path="phoneNo" class="form-control" style="width: 170px" required="true" /></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="phoneNo" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.address" /></label></div>
<div class="col-lg-3"><form:input path="address" class="form-control" style="width: 170px" required="true"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="address" cssclass="error"></form:errors>--%>
</div>-->
</div>
<div class="form-group row">
<div class="col-lg-1"><label><fmt:message key="catering.lalel.discount" /></label></div>
<div class="col-lg-3"><form:input path="discount" class="form-control" style="width: 170px" /></div>
<div class="col-lg-1"><label><fmt:message key="catering.lalel.advancedpay" /></label></div>
<div class="col-lg-3"><form:input path="advanceDeposit" class="form-control" style="width: 170px"/></div>
<!-- <div class="col-lg-1">
<%--<form:errors path="advanceDeposit" cssclass="error"></form:errors>--%>
</div>-->
<div class="col-lg-1"><label><fmt:message key="catering.lalel.comment" /></label></div>
<div class="col-lg-3"><form:input path="mainRemarks" class="form-control" style="width: 170px"/></div>
<form:errors path="mainRemarks" cssclass="error"></form:errors>
</div>
</div>
Please some one help me to find out the error of failing insertion of utf-8 data always and get the solution.