webForumDet fria alternativet

Visning av ryska tecken

25 svar · 2 496 visningar · startad av rollo

rolloMedlem sedan aug. 2001203 inlägg
#1

Hej!

Håller på att fixa en rysk sida och har stött på lite problem.

Allt är frid och fröjd så länge den ryska texten skrivs in på sidan och skrivs till databasen. Men, när texten skall läsas från databasen så blir det bara ??????

Anledningen är säkert pga att de ryska tecknen inte tillhör samma teckentabell som de svenska, men det hjälper inte att lägga till

<meta http-equiv="content-type" content="text/html; charset=koi8-r">

eller windows-1251

Har kollat med webhotellet om det skulle kunna vara MDAC eller ODBC drivrutinerna, men de vet inte.

Vad kan felet bero på?

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Du måste även använda rätt/kompatibelt charset i din databaskolumn.
Vad har du för DBMS?

emissionMedlem sedan dec. 19996 721 inlägg
#3

Släng in session.codepage=1049 på sidan.

Jag föredrar dock att använda UTF-8 på sidor som ska stödja många eller märkliga språk.

PalleMedlem sedan apr. 20003 174 inlägg
#4

emission skrev:

Jag föredrar dock att använda UTF-8 på sidor som ska stödja många eller märkliga språk.

Samma här, och det fungerar ypperligt fin fint. :D

Här är min lilla checklista att ha i bakhuvvet vid utveckling ASP/MSSQL:

  1. Sätt korrekt CodePage i asp-koden.
  2. Sätt korrekt CharSet i asp-koden.
  3. Sätt korrekt Content-Type i html-koden.
  4. Spara med korrekt Encoding på dokumentet.
  5. Sätt korrekt Data Type på textkolumner i databasen.
  6. Deklarera/hantera variablerna korrekt i SP och dess input från asp.

Samt vad korrekt enligt ovan är:

  1. Response.CodePage = 65001
  2. Response.CharSet = "UTF-8"
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. UTF-8
  5. ntext/nvarchar/nchar
  6. ntext/nvarchar/nchar -> .. @strVar = N'"& strInputValue &"' ..

Följer man detta så borde man vara på den säkra sidan. :)

rolloMedlem sedan aug. 2001203 inlägg
#5

okokok

låter enkelt, men hur f*****n knappar jag in vilket charachter set det skall vara i en access databas??

En sak till, jag kan läsa tecknen om jag öppnar databasen och läser direkt i den.

så, MODERATOR!!
Flytta denna tråd till en databas avdelning!

Tackar!

PalleMedlem sedan apr. 20003 174 inlägg
#6

Jag tror bara det är MS Access 2k+ som har stöd för UNICODE,
kör du med Access 2k - kontrollera följande:

1. Öppna tabellen i Design View och markerka ditt textfält.
2. Under Field Properties, kontrollera så Unicode Compression är satt till Yes.

Har du följt min lilla lista här ovan, och Unicode Compression är korrekt, så ska det inte vara några problem. :)

rolloMedlem sedan aug. 2001203 inlägg
#7

jag är nog rätt kass, för jag får inte rätt på det!
:r :r

Jag har lagt

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

direkt under mina includes

<meta http-equiv="content-type" content="text/html; charset=utf-8">

och detta i header

Fälten i databasen står med UNICODE compression.

Koden ser ut så här

<!--#include virtual="/_inc/_data.asp"-->
<!--#include Virtual="/functions.inc"-->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<title>
		rollos site
	</title>
	<link rel="STYLESHEET" type="text/css" href="/css/style.css">
</HEAD>
<BODY bgcolor=ffffff leftmargin=0 topmargin=0>

Vad gör jag fel?

PalleMedlem sedan apr. 20003 174 inlägg
#8

Palle skrev:

Här är min lilla checklista att ha i bakhuvvet vid utveckling ASP/MSSQL:

1. Sätt korrekt CodePage i asp-koden.
2. Sätt korrekt CharSet i asp-koden.
3. Sätt korrekt Content-Type i html-koden.
4. Spara med korrekt Encoding på dokumentet.
5. Sätt korrekt Data Type på textkolumner i databasen.
6. Deklarera/hantera variablerna korrekt i SP och dess input från asp.

Hur har du hanterat punkterna 1, 2 och 4 då?

rolloMedlem sedan aug. 2001203 inlägg
#9

:r

vet inte hur man gör.......

PalleMedlem sedan apr. 20003 174 inlägg
#10

Aha, men säg det då. ;)

Punkt 1 och 2:
Lägg följande i en fil som du inkluderar först/högst upp på alla sidorna:

Response.CodePage = 65001
Response.CharSet = "UTF-8"

Du kan också, som emission förklarade, använda Session.CodePage = 65001 istället för Response.CodePage = 65001.

Punkt 4:
Spara dokumentet som UTF-8.
Beror lite på vilken editor du använder, testa i Notepad för enkelhetens skull:
File > Save As.. och välj UTF-8 som Encoding > Save.

rolloMedlem sedan aug. 2001203 inlägg
#11

LYSANDE!
Tackar!

Det löste de ryska tecknen, men....
jag tappade formateringen av text och formatering av tabeller, dessutom slutade de svenska tecknen att funka....
:q :q

PalleMedlem sedan apr. 20003 174 inlägg
#12

Du måste ha alla sidor enligt ovanstående också, inte bara sidan där du vill visa content.
Ex. så måste sidan med formuläret, där du stoppar in information i databasen, också vara UTF-8.
Annars kommer informationen In i databasen med fel charset.

Har du gjort allt rätt så ska du kunna skriva vanliga å, ä och ö i html koden som sedan syns som å, ä och ö när sidan visas för besökare.
Samma sak gäller för information i databasen.. :)

rolloMedlem sedan aug. 2001203 inlägg
#13

:e :e

så rätt så rätt!

Där satt den!

Tack för hjälpen Palle! :bire

MickeA.comMedlem sedan feb. 20034 441 inlägg
#14

Tjena,
nu drar jag upp en gammal tråd, men jag håller på att bli galen.
Jag har gjort en sajt som ska vara på fyra språk:
- Svenska
- Engelska
- Hollänska
- Japanska

Efter en del tips jag läst om här på wF kom jag fram till att lösa det med UTF-8 samt XML-filer för de "statiska" texterna.
Innehållet menyer / texter / bilder osv. kommer från en MySQL databas och sidan är i skriven i ASP / XHTML.

Nu har jag dykt på helt sjuka problem med svenska tecken (å, ä, ö) och får egentligen ingen ordning på det här.
Ska även nämna att jag följt Palles lista ovan och allt stämmer enligt den.
-----------------------------
- Jag sätter Session.CodePage, Response.CodePage resp. Response.Charset på alla sidor.
- Alla filer är sparade som UTF-8
- MySQL databasen och alla tabellerna är sparade som UTF-8.
- Rätt ContentType är satt.
-----------------------------
Det enda jag kan tänka mig att något är fel på databasen, Zcorpan har hjälpt mig lite och tittat på vissa filer och han menar på att allt är rätt, om man ser till filerna och content-type osv.

Därför tror jag att något är fel i antingen databasen eller i aspkoden.

I eftermiddags testade vi att byta kodning på xml-filerna från UTF-8 till ASCII (Windows-1252 eller vad det kalls) och då kom å,ä,ö igång igen och visas rätt.

Men uppdaterar jag något fält m.h.a ett formulär på sidan så blir det fel igen.
Går det att ange något i form-taggen för att datan ska behandlas på något annat sätt?

Behöver verkligen hjälp med det här, snart dags att lägga upp sidan.
Skrik till om ni vill se kod, så ordnar jag det.

Tack på förhand!

EclipseMedlem sedan juli 20003 825 inlägg
#15

Kanske har vi bättre webbläsare nu än då denna tråden skapades men ryska tecken fungerar bra för mig med Windows 2000 från 1999 och sidor kodade i Dreamweaver utan någon speciell typ av ändrade (sid-)koder än de från fabriken, så att säga.

Japanska tecken kan jag inte uttala mig om. Här finns ryska tecken att testa med:

http://www.online-translator.com/text.asp#tr_form

MickeA.comMedlem sedan feb. 20034 441 inlägg
#16

Men jag har inte ryska tecken alls, om du läser mitt inlägg ;)
Själva problemet ligger endast när man visar det svenska språket och felet beror troligtvis på asp / mysql.

rolloMedlem sedan aug. 2001203 inlägg
#17

Jag hade problem med vissa sidor, men det visade sig att alla sidor inte var sparade i UTF-8 format.

Det visade sig att jag hade glömt att spara om vissa include sidor.

Kan det vara det som spökar?

rollo

MickeA.comMedlem sedan feb. 20034 441 inlägg
#18

rollo skrev:

Kan det vara det som spökar?

Kanske det kan vara så, men alla sidor är i efterhand kontrollerade av dels mig och dels den killen som står för designen, så jag tror inte att vi kan ha missar det två gånger.

Fler förslag?

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#19

Palle skrev:

Här är min lilla checklista att ha i bakhuvvet vid utveckling ASP/MSSQL:

  1. Sätt korrekt CharSet i asp-koden.
  2. Sätt korrekt Content-Type i html-koden.

Samt vad korrekt enligt ovan är:

  1. Response.CharSet = "UTF-8"
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

CharSet bakas in i Content-Type headern. Onödigt att ange Content-Type både i header och i meta-tagg.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#20

Erik Juhlin skrev:

CharSet bakas in i Content-Type headern. Onödigt att ange Content-Type både i header och i meta-tagg.

Okej, jag följer bara denna lista... ;)
Läste ngnstans att man kan exportera all data från MySQL till en textfil, sedan sparar man textfilen som UTF-8 och sen importerar den i MySQL igen, tror ni på det?
- Jag känner mig rätt tveksam över det, men snart tar jag till vad som helst för att få det här att funka...

144 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)