арабское кодирование с автозаполнением jquery jsp + mysql - PullRequest
0 голосов
/ 02 апреля 2012

Я не задавал этот вопрос, прежде чем иметь дело с большинством ответов, которые я прочитал об этой проблеме:

У меня есть таблица mysql с CHARACTER SET utf8 COLLATE utf8_unicode_ci, сначала я использовал utf8_general_ci, затем изменил ее ...

когда я получаю английский символ, я получаю список предложений правильно, но когда я получаю арабский символ, я получаю список предложений, но без арабских символов, что является проблемой кодирования, и я прочитал, что jquery уже использует юникод?

код для подключения к mysql и получения поля:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    <%@ page language="java" import="java.sql.*" %>
    <% response.setContentType("text/html;charset=UTF-8");%>



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<%

String Mystr=request.getParameter("queryString");
String result =null;

try{

    String password="xxxxxxx";
    String username="root";
    String connectionURL = "jdbc:mysql://localhost:3306/myDB?useUnicode=yes&characterEncoding=UTF-8";

/*and if i didn't give it ( useUnicode=yes&characterEncoding=UTF-8";) i get the same result*/

    Connection con = null;
    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection(connectionURL,username,password);

    String sql = "SELECT arabic_char FROM charset WHERE english_char LIKE '"
            +Mystr+"%' LIMIT 5";
    Statement stm = con.createStatement();
    //stm.executeQuery("SET NAMES 'UTF8'");
    //stm.executeQuery("SET CHARACTER SET 'UTF8'");
    stm.executeQuery(sql);
    ResultSet rs= stm.getResultSet();
    while (rs.next ()){
        result= new String( rs.getBytes("arabic_char"), "UTF-8");
        out.println("<li onclick='fill("+result+");'>"
        +rs.getString("arabic_char")+"</i>");
        }
    }
catch(Exception e){
        out.println("The problem is ;"+e);
        }


%>




</body>
</html>

1 Ответ

0 голосов
/ 02 апреля 2012

jquery может использовать юникод, а строки запросов - нет.попробуйте сначала закодировать своего персонажа, а затем сделать запрос.вам нужно будет декодировать вашего персонажа в скрипте генератора результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...