Solved

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

Posted on 2006-06-28
4
6,182 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
Comment Utility
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 500 total points
Comment Utility
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
Comment Utility
@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
Comment Utility
hi:

you can modify sql statement

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

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

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 information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

762 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now