» »

MSSQL UTF-8 in šumniki

MSSQL UTF-8 in šumniki

biasko ::

Živjo!

Spletna stran in microsoftova baza je nastavljena na UTF-8.
V bazi šumniki izgledajo takole: Å¡ Ä Å¾ Å ÄŒ Ž = š č ž Š Č Ž

Na straneh mi lepo izpisuje, amapk težava nastane ko uporabim iskalnik, ki ga imam na spletni strani. Preko forme se prenesejo pravi znaki, ampak SQL stavek ne najde nič. čeprav beseda obstaja.
Če iščem besedo brez šumnikov lepo deluje.

Hvala!
lp

kunigunda ::

Iskalnik, ki dela v browserju, ima svoj enkodiranje, eni imajo Latin, eni UTF, poglej nastavitve. Sicer bos moral v skripti
za iskanje prekonvertirati v utf8 predno gres v bazo.

Andreij ::

zakodiraj stran v unicode ki ga hočeš in bo delovalo

biasko ::

stran ima nastavljeno
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
, isto sama datoteka .asp je kodirana z utf-8

V bazi so znaki: ?? Ä ? 3/4 ? ÄOE ? 1/2

Ko preko form iščem naredim izpis iskanega niza ki ravno tako vsebuje te znake ?? Ä ? 3/4 ? ÄOE ? 1/2 . Tako da mi ni jasno zakaj jih ne najde.

Na forem sem ravno tako poskusil dodati, da so znaki ki jih prejme utf-8 ampak ne spremeni.

Nevem kaj naj še poskusim.

Hvala!

Spura ::

V bazo si dal podatke ANSI kot UTF-8.

kunigunda ::

1. preveri v skripti, ali res dobis notri utf8 (izpisi bajte na ekran)
2. preveri v klientu baze (v tvojem primeru library - connect), v kaksnem encodingu bo posiljal serverju
mysql verzije se razlikujejo med sabo, pri 4.0 ni bilo avtomatskega enkodiranja ipd.

usoban ::

set names utf8; 

preden pozenes queryje.

biasko ::

uporabljam MS SQL - prvič v življenju in se mi ne posveti ;)

Kako bi zadevo rešil z parametri?


  Set result= Server.CreateObject("ADODB.Recordset")
  sqltekst="SELECT ... WHERE ime LIKE @parameter"
  result.Open sqltekst, strConnection



hvala!

Looooooka ::

Ce je baza nastavljena na UTF8 to se ne pomeni, da bo vse kar si napisat not magicno pravilno.
Ti moras na spletni strani ze gledat, v kaksnem formatu dobis tekst preden ga napises v bazo...in poskrbet, da bo pravilno zapisan v bazo.
In potem pri prikazovanju spet predvidevat, da iz baze res dobiras pravilno kodiran utf-8 text, ki ga lahko potem kot utf-8 prikazes na spletni strani.
Ce ga kjerkol vmes poserjes potem bo pac problem.

biasko je izjavil:

uporabljam MS SQL - prvič v življenju in se mi ne posveti ;)

Kako bi zadevo rešil z parametri?



Set result= Server.CreateObject("ADODB.Recordset")
sqltekst="SELECT ... WHERE ime LIKE @parameter"
result.Open sqltekst, strConnection



hvala!

a je kksn poseben razlog, da leta 2012 delas v aspju? :D

Zgodovina sprememb…

  • spremenilo: Looooooka ()

kunigunda ::

Sem ti ze povedal, najprej preveri, ali notri res dobis utf8. Razdeli string po bajtih in jih daj na ekran.

carota ::

MSSQL ne podpira neposredno UTF-8. Polja morajo biti tipa NVARCHAR/NCHAR, Collation pa nastavljen za pravi jezik in ali naj bo case sensitive ali ne (se mi zdi). Preveri Collation polj in baze.

biasko ::

Ja to je stara reč;)

Ha, sedaj ugotovim da je baza Latin1_General_CI_AS

Sedaj ko sem to odkril se mi je spet odprlo nekaj možnosti.


Hvala usem.

biasko ::

rešeno

težava je bila:
SearchKey = server.HTMLEncode((request.Form("SiteSearchKey")))

tole pa deluje:
SearchKey =request.Form("SiteSearchKey")

;)

hvala!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[php] encoding niza

Oddelek: Izdelava spletišč
173790 (1705) BivšiUser2
»

Java - Problem zarad šumnikov pri SQL

Oddelek: Programiranje
51603 (1354) DiTi
»

MySQL in czs

Oddelek: Izdelava spletišč
423601 (2691) krho
»

ASP problemček (MDB)

Oddelek: Izdelava spletišč
6944 (865) AndrejS
»

asp+access problem

Oddelek: Izdelava spletišč
81059 (990) appz

Več podobnih tem