Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Insert chinese ( utf-8 charset ) into MS SQL server

Posted on 2006-06-28
4
Medium Priority
?
6,201 Views
Last Modified: 2011-09-12
Does anyone of Experts here know how to insert chinese character (utf-8 charset) into MS SQL Server 2000?

The field are of nvarchar, whenever i attempt to insert, it shows question marks ?????????

It works if i apply either

  server.htmlEncode()

or
   
 Function c2u(CnText)
      For zzzz = 1 to Len(CnText)
        c = Mid(CnText, zzzz, 1)
        c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
      next
    End Function

However the length of the field are fixed and the result will took more spaces
For instance,
请选择   ( 3 chinese characters )
will consume up to 24 nvarchar, thus this is not viable

On each of the asp page

<%@ CodePage = 65001 %>
<%
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.addHeader "cache-control", "no-cache"
Response.addHeader "cache-control", "no-store"
Response.CacheControl = "no-cache"
Response.CharSet = "utf-8"
%>
 :
 :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

I have something like this.

Thank you for the helps

Regards
Kelvin
0
Comment
Question by:kelvinwkw
  • 2
4 Comments
 
LVL 21

Expert Comment

by:ap_sajith
ID: 17000559
Try removing the codepage attribute. Also, are you getting the jumbled characters on your browser or in you query analyzer.

Cheers!
0
 
LVL 6

Accepted Solution

by:
darkeryu earned 2000 total points
ID: 17002447
hi:

i have this problem before...
you need insert the sql with

insert into table(fd1,fd2) values(N'val1',N'val2')

then you can response correctlly..

thanks
0
 
LVL 11

Author Comment

by:kelvinwkw
ID: 17006359
@ap_sajith  
after i remove the codepage attribute i still get the ??????? instead of chinese characters

@darkeryu
Im using a store procedure for that.

given that
@username nvarchar(30)
@password nvarchar(30)
@email varchar(100)

user nvarchar(30)
pass nvarchar(30)
email varchar(100)

select @checkExist = count(*) from login where username = @username
if @checkExist = 0
begin
      -- if username does not exist
      insert into login(user, pass, email) values(@username, @password, @email)
      select 10000 as msg
      return
end

How am i suppose to dealing with it.

0
 
LVL 6

Expert Comment

by:darkeryu
ID: 17006398
hi:

you can modify sql statement

insert into login(user, pass, email) values(N@username, N@password, N@email)
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:   The Exchange of informatio…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
Integration Management Part 2
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question