从servlet中的mysql中选择数据时,阿拉伯语文本显示????(问号)

时间:2014-04-13 17:09:26

标签: java mysql jsp servlets arabic

我正在使用此代码

try {
            String connectionURL = "jdbc:mysql://localhost:3306/mydb"; 

            Connection connection = null; 
            Class.forName("com.mysql.jdbc.Driver").newInstance(); 

            connection = DriverManager.getConnection(connectionURL, "root", "");

            if(!connection.isClosed())
                System.out.println("Successfully connected to " + "MySQL server using TCP/IP...");
            ResultSet rs = null;


            Statement statement = null;
            statement = connection.createStatement();
            // sql query to retrieve values from the secified table.
            String QueryString = "SELECT `Text` FROM `card` WHERE `CardID`=1";
            rs = statement.executeQuery(QueryString);
            String arabictext ="";
            while (rs.next()) {
                System.out.println(rs.getString(1));
                arabictext += rs.getString(1);

            }
            rs.close();
            statement.close();
        }
        catch(Exception ex){
            System.out.println("Unable to connect to database.");
        }
Text表中的

card列为text类型,utf8_unicode_ci排序规则。 当我执行以上查询以获取阿拉伯文本时,它没有以正确的格式显示,而是显示问号,如?????。 我在控制台和jsp页面上打印它,但它在两者上显示???

1 个答案:

答案 0 :(得分:0)

您可能正在寻找Character Encoding

如果你甚至不知道在哪里获得阿拉伯字符,但是你想要显示它们,那么你就会做错事。

保存包含编码为UTF-8的阿拉伯字符的文件。一个好的编辑器允许您设置字符编码。在HTML页面中,将以下内容放在:

之后
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

如果你正在使用XHTML:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

参考https://stackoverflow.com/a/3601802/2236219