Issue with Non-English contents
Moderators: Jon, Steve, Ian, Dave
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
Issue with Non-English contents
Dear All,
We are trying to store some non-English contents through the Ebase forms into SQL server 2008 database and those contents are getting saved with question mark symbols (???????). This is not occuring for all the languages and its only for some of the languages as mentioned below.
Please validate and let me know if you have any inputs on this issue.
Database Details:
DB Type : SQL Server 2008 Version:10.0.2531.0
DB column data type : nvarchar(max)
Some of the non-supported languages:
Japanese, Greek, Bulgarian, Russian, Chinese, Korean and Thai.
Thanks,
Gopalan.
We are trying to store some non-English contents through the Ebase forms into SQL server 2008 database and those contents are getting saved with question mark symbols (???????). This is not occuring for all the languages and its only for some of the languages as mentioned below.
Please validate and let me know if you have any inputs on this issue.
Database Details:
DB Type : SQL Server 2008 Version:10.0.2531.0
DB column data type : nvarchar(max)
Some of the non-supported languages:
Japanese, Greek, Bulgarian, Russian, Chinese, Korean and Thai.
Thanks,
Gopalan.
0 x
-
- Moderator
- Posts: 184
- Joined: Tue Sep 11, 2007 8:58 am
Hello Gopalan,
nvarcahr is the correct column type in Sql Server, allowing for Unicode characters.
One suggestion I have is to change the Character Encoding for all of Ebase. This is done in the Internationalization dialogue under the Character Encoding tab. Select the "Always use encoding" option and set it to UTF-8.
Could you try this and let me know how you get on please?
Thanks,
Hovik
nvarcahr is the correct column type in Sql Server, allowing for Unicode characters.
One suggestion I have is to change the Character Encoding for all of Ebase. This is done in the Internationalization dialogue under the Character Encoding tab. Select the "Always use encoding" option and set it to UTF-8.
Could you try this and let me know how you get on please?
Thanks,
Hovik
0 x
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
-
- Moderator
- Posts: 184
- Joined: Tue Sep 11, 2007 8:58 am
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
Hi Hovik,
Thanks for the update.
As per the information from the logs, SQL server is expecting the generated script in the following way ('N' prefix required for Unicode characters). Please let me know, if there is any option to overcome this issue.
Ebase generated script against SQL:
update entity_name
set entity_name = '星期一,星期二,星期三'
where entity_id = 44992
Solution identified:
update entity_name
set entity_name = N'星期一,星期二,星期三'
where entity_id = 44992
Thanks,
Gopalan.
Thanks for the update.
As per the information from the logs, SQL server is expecting the generated script in the following way ('N' prefix required for Unicode characters). Please let me know, if there is any option to overcome this issue.
Ebase generated script against SQL:
update entity_name
set entity_name = '星期一,星期二,星期三'
where entity_id = 44992
Solution identified:
update entity_name
set entity_name = N'星期一,星期二,星期三'
where entity_id = 44992
Thanks,
Gopalan.
0 x
-
- Moderator
- Posts: 1342
- Joined: Wed Sep 12, 2007 12:49 pm
Gopalan,
It looks from your last post that your Database Resource has the Use Prepared Statements option unchecked. Could you try turning this option on. If you are using the JTDS JDBC driver (this is the default for an MSSQL connection with Ebase), all character data should be passed to the DBMS as unicode by default. You shouldn't need to do anything else.
If this doesn't work, I think you might try using the Microsoft JDBC driver instead of the distributed JTDS driver.
Regards
Jon
It looks from your last post that your Database Resource has the Use Prepared Statements option unchecked. Could you try turning this option on. If you are using the JTDS JDBC driver (this is the default for an MSSQL connection with Ebase), all character data should be passed to the DBMS as unicode by default. You shouldn't need to do anything else.
If this doesn't work, I think you might try using the Microsoft JDBC driver instead of the distributed JTDS driver.
Regards
Jon
0 x
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
-
- Moderator
- Posts: 1342
- Joined: Wed Sep 12, 2007 12:49 pm
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
-
- Moderator
- Posts: 1342
- Joined: Wed Sep 12, 2007 12:49 pm
No it's not available in V3.4.0. The current version is V4.5.2 and lots of new features have been introduced, you might consider an upgrade.
But back to your problem...
You could get the system to use the N'' syntax by changing the database resource to use advanced sql - this is where you configure all the SQL statements explicitly. Then the update statement will look something like this:
update entity_name
set entity_name = N'&&{entity_name}'
where entity_id = &&entity_id
There is a Build button that will do most of this for you. You may also need to configure the select, insert and delete statements.
Regards
Jon
But back to your problem...
You could get the system to use the N'' syntax by changing the database resource to use advanced sql - this is where you configure all the SQL statements explicitly. Then the update statement will look something like this:
update entity_name
set entity_name = N'&&{entity_name}'
where entity_id = &&entity_id
There is a Build button that will do most of this for you. You may also need to configure the select, insert and delete statements.
Regards
Jon
0 x
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
Hi Jon,
We tried to fix this issue with your suggestion above but we are getting the following syntax error and the contents are coming with question mark symbols in the server log.
Error : SQL error updating database source WEB_FORM update web_form set alternate_language_name = N'{'???,???,??? ???,?'}' where entity_id = 44992 - Incorrect syntax near '???'.
As per your initial suggestion, Can we try using the Microsoft JDBC driver instead of the distributed JTDS driver?
If so, could you please let us know the steps to update JTDS driver to Microsoft JDBC driver?
Thanks,
Gopalan.
We tried to fix this issue with your suggestion above but we are getting the following syntax error and the contents are coming with question mark symbols in the server log.
Error : SQL error updating database source WEB_FORM update web_form set alternate_language_name = N'{'???,???,??? ???,?'}' where entity_id = 44992 - Incorrect syntax near '???'.
As per your initial suggestion, Can we try using the Microsoft JDBC driver instead of the distributed JTDS driver?
If so, could you please let us know the steps to update JTDS driver to Microsoft JDBC driver?
Thanks,
Gopalan.
0 x
-
- Moderator
- Posts: 1342
- Joined: Wed Sep 12, 2007 12:49 pm
Gopalan,
There was a mistake in my last reply - which I edited later. The syntax should be:
set entity_name = N'&&{entity_name}'
not..
set entity_name = N'{&&entity_name}'
The { was in the wrong place. Can you try it like this first. The &&{entity_name} should be replaced with your data and you should see this in the debug log.
Regards
Jon
There was a mistake in my last reply - which I edited later. The syntax should be:
set entity_name = N'&&{entity_name}'
not..
set entity_name = N'{&&entity_name}'
The { was in the wrong place. Can you try it like this first. The &&{entity_name} should be replaced with your data and you should see this in the debug log.
Regards
Jon
0 x
-
- Ebase User
- Posts: 9
- Joined: Mon Aug 18, 2014 12:30 pm
- Location: Ireland
Who is online
Users browsing this forum: No registered users and 17 guests