안드로이드 - jsp - mysql에서 한글쿼리가 제대로 동작안됩니다... jsp에서의 한글인코딩문제인거 같은데
안드로이드에서는 모든 설정을 utf-8로 해놨습니다. 페이지인코딩까지 utf-8입니다.
UrlEncodedFormEntity entityRequest = new UrlEncodedFormEntity( nameValuePairs, "UTF-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
login.loadData(result, "text/html", "UTF-8");
mysql의 server, db, client, conn의 characterset은 모두 euckr입니다.
String sname = "가";
nameValuePairs.add(new BasicNameValuePair("sname", sname));
한글 "가"를 보내서 쿼리하면 안되는데
String sname = "a";
nameValuePairs.add(new BasicNameValuePair("sname", sname));
영어 a를 보내면 쿼리가 잘 동작합니다.
밑에는 jsp 풀소스입니다... 도움 좀 부탁드립니다.
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<%
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String DB_SERVER = "localhost:3306";
String DB_SERVER_USERNAME = "root";
String DB_SERVER_PASSWORD = "123123";
String DB_DATABASE = "test";
String jdbcUrl = "jdbc:mysql://" + DB_SERVER + "/" + DB_DATABASE;
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(jdbcUrl, DB_SERVER_USERNAME, DB_SERVER_PASSWORD);
%>
<%
String enc1 = "8859_1";
String enc2 = "euc-kr";
String enc3 = "utf-8";
String sname = request.getParameter("sname");
String ch_sname = new String(sname.getBytes(enc3),enc2); // utf-8로 인코딩된 한글을디비 인코딩 euckr로 바꿔봤습니다
String query = "select * from han where name = '"+sname+"' ";
pstmt=con.prepareStatement(query);
rs=pstmt.executeQuery();
int count=0;
while(rs.next()) {
String id=rs.getString("id");
String name = rs.getString("name");
%>
<p>[<%=count%>] id : <%=id%>, name : <%=name%></p>
<%
count++;
}
} catch(Exception e) {
e.printStackTrace();
out.println("Database 연결 실패");
}
%>
</body>
<html>
혹시 예제소스나.... 해결방법좀 알려주세요..



