RE: Installing using utf-8 and mssql server?

[email protected]
Newsgroups gmane.comp.cms.jahia.install
Message-ID <OF3252DC8D.DA76D976-ONC125708A.0032E91A-C125708A.0032E91E@generic.se>
Hi!

I have done some testing and currently the situation is like this.

If I insert the string by using a prepared statement the comparison test is successfull.

...

// Empty table
Statement statement1 = connection.createStatement();
statement1.execute("delete jahia_db_test");

// Insert string
PreparedStatement statement2 = connection.prepareStatement("insert into jahia_db_test (testfield) values (?)");
String testField = "Latin : ���� / Cyrillic : \u0419\u0416 / Chineeze : \u8bed\u8a00";
statement2.setString(1, testField);
statement2.execute();

// Fetch and compare
Statement statement3 = connection.createStatement();
ResultSet rs = statement3.executeQuery("select * from jahia_db_test");
while (rs.next())
{
String test = rs.getString(1);
if (test.equals(testField))
{
System.out.println("OK"); <------- The result
}
else
{
System.out.println("FAIL");
}
}

but if I concatenate strings like in the Jahia source code the comparison test FAIL:

....

// Empty table
Statement statement1 = connection.createStatement();
statement1.execute("delete jahia_db_test");

// Insert string
Statement statement2 = connection.createStatement();
String testField = "Latin : ���� / Cyrillic : \u0419\u0416 / Chineeze : \u8bed\u8a00";
statement2.execute("insert into jahia_db_test (testfield) values ('" + testField + "')");

// Fetch and compare
Statement statement3 = connection.createStatement();
ResultSet rs = statement3.executeQuery("select * from jahia_db_test");
while (rs.next())
{
String test = rs.getString(1);
if (test.equals(testField))
{
System.out.println("OK");
}
else
{
System.out.println("FAIL"); <------- The result
}
}
...

The outcome is the same if I use jtds or microsofts JDBC-driver

I do always prefer prepared statements myself because I never have to think about the ' around strings. Now its hard to tell if Jahia persistence mechanisms uses prepared statements or not because its dependent of a couple of persistence frameworks.

Regards

/Lars Hagrot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.