Unicode Character Conversion Issue

Aug 6, 2009 at 2:37 PM

I've got a list with an Text field where I've entered some Japanese characters. These are stored and displayed properly in SharePoint. But the back-end list in SLAM is converting to question marks ?? .

The attribute on the table is set to nvarchar as well as in the SLAM config so I'm not sure where the change, if any needs to be made.

I can copy/paste directly into the SQL table with my Japanese characters, so it will definitely hold Unicode, but something is being lost in translation (no pun intended).

Aug 15, 2009 at 12:06 AM

Any thoughts on this?

Sep 1, 2009 at 8:16 PM

Little help?

Developer
Sep 1, 2009 at 8:45 PM

Hi Jetlounge,

So sorry we haven't responded to this post.  The truth is we don't specify the encoding anywhere so would expect that it would work with Japanese characters but haven't had the need to use it nor the time to test it out for you.  We're a little, pardon the expression, slammed at the moment.

Please feel free to log it as an issue so other users can vote on it.  If there are a huge number of people voting on it, we may get to this issue sooner.  Alternatively, if this is mission critical for your organization, please contact us at slam@awsystems.com and we'd be happy to help in a consulting capacity.

Yours,

Allan

Dec 8, 2009 at 10:44 AM
Edited Dec 8, 2009 at 10:46 AM

Guys,

I ran into the same issue, working with NVARCHAR columns and cyrillic letters (Bulgarian). After looking into the SQL Profiler for a while, I found out that the SQL generated by SLAM doesn't manage NVARCHAR conversion as it should. It executes INSERT/UPDATE statements without casting the NVARCHAR fields to NVARCHAR (should prefix the literal in T-SQL with N).

However, there is a way of going around this in some cases.

The solution is to change the collation of the SLAM DB to one compatible with the charset you want to store in the DB.

Following is what I've done in order to do this:

1. Use MSSQL Server Management Studio to generate a script of the SLAM Db.
2. Append the collation to the "CREATE DATABASE " statement like this:

CREATE DATABASE [SLAM_DB] COLLATE cyrillic_general_ci_as

3. Recreate the rest of the DB. After collating the DB itself with a default collation, the rest of the objects will inherit it.

Cheers,
Branimir Giurov
C# MVP