How can I insert arabic word to mysql database using java

后端 未结 4 2195
时光说笑
时光说笑 2020-12-01 13:34

I have a java application, want to insert arabic words to mysql database, my code looks like

Connection con = null;
    String url = \"jdbc:mysql://localhos         


        
相关标签:
4条回答
  • 2020-12-01 13:54

    You have to create your database as a UTF-8 table otherwise no matter what you add it will never be able to store it...

    second you need to encode it before you save it, I like to use unicode... one thing about this is that if you have a column that specifies 32 length, you will have to increase that for unicode as a single character takes up 6 characters,

    example

    letter h appears as U+0068

    0 讨论(0)
  • 2020-12-01 13:58

    @maerics I tried using PreparedStatement instead and SQL Injection attack is still able to be done, I think either am implementing the PreparedStatemnt wrong or your feed is incorrect.

    0 讨论(0)
  • 2020-12-01 14:02

    add this variable after db variable declaration:

    String unicode= "?useUnicode=yes&characterEncoding=UTF-8";
    

    and then modify your line:

    con = DriverManager.getConnection(url+db,"root","");
    

    to

    con = DriverManager.getConnection(url+db+unicode,"root","");
    
    0 讨论(0)
  • 2020-12-01 14:15

    i faced the same problem but with Chinese data, and it is not only the UTF8 in the db connection is the solution you should also do this:

    Ensure that your MySQL configuration encoding is defined correctly. Add these lines to either my.cnf "in the case if using linux" or my.ini "case you using windows"

    [client] 
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    default-character-set=utf8
    character-set-server=utf8
    
    0 讨论(0)
提交回复
热议问题