Avatar billede mri Nybegynder
18. november 2003 - 17:15 Der er 9 kommentarer og
1 løsning

Polske og danske karakterer

Jeg har en tabel med et titelfelt/nvarchar og et indholdsfelt/ntext. Jeg ønsker at felterne skal kunne indholde såvel polske som danske karakterer. Det gør ikke noget, hvordan de ser ud - bare jeg med asp kan hente dem ud i htmlside.

Htmlen sprog og contenttype bliver selvfø'li' sat til det respektive sprog.

Collation på begge felter er SQL_Latin1_General_Cp1_CI_AS.

De fleste polske karakterer vises rigtigt, men der er nogle undtagelser. De skal helst vises rigtigt alle sammen.

Nogen forslag?

Martin
Avatar billede mri Nybegynder
18. november 2003 - 17:17 #1
Jeg har forsøgt følgende med den polsketekst i asp'en uden held:

SELECT CAST(titel AS nvarchar(255)) COLLATE SQL_Polish_CP1250_CI_AS FROM ...
Avatar billede sn0wflake Nybegynder
18. november 2003 - 17:25 #2
Jeg oplevede omtalte problem da jeg anvendte Microsoft Access. Den sidste udgave jeg oplevede det med var Microsoft Access 2000, indtil jeg skiftede til MySQL. Grunden til at jeg skiftede var at Access gemmer tegn i henhold til det sprog der er valgt i Access. Dvs. at hvis jeg prøvede at gemme tekst med specielle tegn, og senere hen skiftede sprog i Access, så blev de specielle tegn mange gange korrupt. Jeg har ikke oplevet det samme problem med MySQL.
Er det bare mig eller er der andre der har oplevet det samme?
Avatar billede mri Nybegynder
18. november 2003 - 17:30 #3
Jeg kan godt kopiere polsk og dansk tekst ind i felterne manuelt. Men når jeg hiver dem ud med asp, så bliver de vist forkert.

I min header har jeg forskellige meta-tags for hver sprog - fx polsk:

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-2">
<META HTTP-EQUIV="Content-language" CONTENT="pl">
<META NAME="DC.Language" scheme="NISOZ39.50" CONTENT="pl">

Men det er ikke alle tegnene, som bliver vist rigtigt. Jeg kan heller ikke sætte dem rigtigt ind i databasen.
Avatar billede trer Nybegynder
18. november 2003 - 18:24 #4
Det pænseste vil nok være, at du opretter to kolonner til hhv polsk og dansk. Du kan så sætte collation på kolonne-niveau.

For at undgå at ændre dine asp-sider kan du lave et view navngivet som den oprindelige tabel. Viewet indeholder så en "SELECT polsk UNION ALL SELECT dansk" så den oprindelige struktur med 1 kolonne genskabes. Opdatering håndteres ved at lave INSTEAD OF triggere på viewet.
Avatar billede mri Nybegynder
18. november 2003 - 19:12 #5
Jeg vil meget nødigt skifte til to kolonner.
Avatar billede ole40 Nybegynder
01. februar 2004 - 07:42 #6
Har du fundet en løsning?
/ole
Avatar billede ole40 Nybegynder
04. februar 2004 - 08:35 #7
Løsning:
Efter mange mange mange forsøg fandt jeg en løsning:
Feltet du gemmer i SKAL være ntext, nvarchar eller nchar og selvfølgelig SQL_Polish_CP1250_CI_AS, når du så laver en insert eller update SKAL du huske at benytte N foran stringen du gemmer.
fx.
update mytabel set polsktext=N'Czy masz ju&#380; w&#322;asn&#261; domen&#281;?' where ...
/Ole
Avatar billede ole40 Nybegynder
04. februar 2004 - 08:38 #8
Det ser ikke ud til at experten.dk kan gemme polske tegn ;o)
Du skal selvfølgelig bare skrive teksten UDEN at lave den om til &#...
/Ole
Avatar billede mri Nybegynder
04. februar 2004 - 08:39 #9
Hej ole40

Jeg havde egentlig fundet en løsning, men tusind tak for din indsats. Jeg var egentlig på udkig efter en løsning, hvor jeg ikke skal ændre mit ntext felt til SQL_Polish...

Jeg benytter ikke N'et i insert og update, ved du hvad det gør?

Du får selvfølgelig point for stor indsats, så lang tid efter.

mvh
Martin
Avatar billede ole40 Nybegynder
04. februar 2004 - 14:32 #10
Takker...
N'et gør at data bliver behandler som unicode data efter SQL-92 standarden.

/Ole
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester