all groups > sql server (alternate) > may 2007 >
You're in the

sql server (alternate)

group:

Escaping international (unicode) characters in string


Escaping international (unicode) characters in string Greg R. Broderick
5/29/2007 8:22:53 AM
sql server (alternate): Y'all:

I am needing some way, in the SQL Server dialect of SQL, to escape unicode
code points that are embedded within an nvarchar string in a SQL script,
e.g. in Java I can do:

String str = "This is a\u1245 test.";

in Oracle's SQL dialect, it appears that I can accomplish the same thing:

INSERT INTO TEST_TABLE (TEST_COLUMN) VALUES ('This is a\1245 test.");


I've googled and researched through the MSDN, and haven't discovered a
similar construct in SQL Server. I am already aware of the UNISTR()
function, and the NCHAR() function, but those aren't going to work well if
there are more than a few international characters embedded within a
string.

Does anyone have a better suggestion?

Thanks muchly!
GRB

--
---------------------------------------------------------------------
Greg R. Broderick usenet200705@blackholio.dyndns.org

A. Top posters.
Q. What is the most annoying thing on Usenet?
Re: Escaping international (unicode) characters in string Greg R. Broderick
5/29/2007 12:01:43 PM
Erland Sommarskog <esquel@sommarskog.se> wrote in
news:Xns993F9F38ABD05Yazorman@127.0.0.1:

[quoted text, click to view]

When there are more than one or two non-US-ASCII characters in the string,
this quickly becomes impractically unwieldy, thus my comment in my original
posting:

--- quote ---

I am already aware of the UNISTR() function, and the NCHAR() function, but
those aren't going to work well if there are more than a few international
characters embedded within a string.

--- quote ---

Thanks anyway, though. :-)

--
---------------------------------------------------------------------
Greg R. Broderick usenet200705@blackholio.dyndns.org

A. Top posters.
Q. What is the most annoying thing on Usenet?
Re: Escaping international (unicode) characters in string Erland Sommarskog
5/29/2007 1:39:09 PM
Greg R. Broderick (usenet200705@blackholio.dyndns.org) writes:
[quoted text, click to view]

SELECT @str = 'This is a' + nchar(1245) + ' test'

Note here that 1245 is decimal. If you want to use hex code (which you
normally do with Unicode), you would do:

SELECT @str = 'This is a' + nchar(0x1245) + ' test'




--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
Re: Escaping international (unicode) characters in string Erland Sommarskog
5/29/2007 9:23:00 PM
Greg R. Broderick (usenet200705@blackholio.dyndns.org) writes:
[quoted text, click to view]

If the are in sequence, you could do:

convert(nvarchar, 0x34123512...)

although this is certainly not too funny as you have twitch the bytes
around.

Another solution to use something like Microsoft Visual Keyboard, and
simply put the actual characters there.


--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
AddThis Social Bookmark Button