O UTF-8 funciona no Eclipse, mas falha ao trabalhar com um jar exportado
Eu estou trabalhando em um aplicativo de desktop comJava
Swing
e salvar dados em umMySQL
banco de dados em linguagem árabe com o usoUTF-8
.
Quando eu corro o aplicativo deEclipse
tudo funciona bem, mas quando eu termino e exporto meu trabalho para umrunnable jar
usandoEclipse
export
nada relacionado ao banco de dados funciona.
Arabic
eu recebo??????
no banco de dadosNo entanto, como mencionei anteriormente, tudo funciona corretamente quando eu o executoEclipse
. Qualquer um pode me ajudar, devo entregar meu trabalho
Esta é uma amostra do meu trabalho:
É assim que eu conecto conecto meu banco de dados:
static Connection conn = null;
static String url = "jdbc:mysql://localhost:3306/";
static String dbName = "gestiondestock";
static String driver = "com.mysql.jdbc.Driver";
static String userName = "root";
static String password = "";
static String unicode= "?useUnicode=yes&characterEncoding=UTF-8";
Este é o código parabuttonLogin
ActionPerformed
:
private void buttonLogin_ActionPerformed(ActionEvent e) {
if(textField.getText().equals("") || passwordField.getText().equals(""))
{
jd =new JDialog();
jd.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
jd.setTitle("الرجاء ملء الفراغ");
jd.setVisible(true);
jd.setLocationRelativeTo(null);
jd.setSize(400,200);
jd.setContentPane(buildpp());
}
else{
if(textField.getText().equals("Adel91") || passwordField.getText().equals("Adel91"))
{
CardLayout cardLayout = (CardLayout) contentPane.getLayout();
cardLayout.show(contentPane, "Panel_Home");
}
else{
try{
String usernamena = new String(textField.getText());
String passwordlogin = new String(passwordField.getText());
MessageDigest mdEnc4 = MessageDigest.getInstance("MD5");
mdEnc4.update(passwordlogin.getBytes(), 0, passwordlogin.length());
String passwordlogindmd5 = new BigInteger(1, mdEnc4.digest()).toString(16); // Encrypted
try{
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName+unicode,userName,password);
Statement st = conn.createStatement();
ResultSet res = st.executeQuery("SELECT username,password FROM client ");
String user = null;
String pass = null;
if(res.next()) {
user = new String( res.getBytes(1), "UTF-8");
pass = new String( res.getBytes(2), "UTF-8");
}
if(usernamena.equals(user)&&passwordlogindmd5.equals(pass)){
CardLayout cardLayout = (CardLayout) contentPane.getLayout();
cardLayout.show(contentPane, "Panel_Home");
}
else{
jd =new JDialog();
jd.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
jd.setTitle("كلمة المرور والإسم غير مناسبان");
jd.setVisible(true);
jd.setLocationRelativeTo(null);
jd.setSize(430,200);
jd.setContentPane(buildwronglogin());
}
} catch (Exception ee) {
ee.printStackTrace();
}
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
Variáveis resultantes do MySQL usando este cmd: SHOW VARIABLES LIKE 'c%'; abd cada thins é uts8