18. november 2003 - 17:15Der 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.
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?
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.
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ż własną domenę?' where ... /Ole
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.
Takker... N'et gør at data bliver behandler som unicode data efter SQL-92 standarden.
/Ole
Synes godt om
Ny brugerNybegynder
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.