[Apache] cyrillic en europese karaktersets

Pagina: 1
Acties:

  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 27-08 07:06

Tuxie

En WeL nU!

Topicstarter
Hoi allemaal,

Ik ben een website aan het maken die in verschillende talen moet opereren. Er is echter een vreemde eend in de bijt, een (klein) deel moet in het russisch. Dat betekent dat er rekening gehouden moet worden met verschillende karaktersets.

Op dit moment is de default karakterset in apache geconfigureerd en geactiveerd volgens de response headers:

code:
1
Content-Type: text/html; charset=ISO-8859-1


Dit is prima voor westerse talen. Echter niet voor het russisch. Daarvoor moet de cyrillische karakterset gestuurd worden. Ik heb een beetje gespeeld met de encoding in firefox, er is geen 1 karakterset die zowel europees als russich correct doet. Voor de russiche set heb ik cyrillic-windows 1251 nodig.

Nu is de vraag eigenlijk hoe dit in apache juist te configureren. De moeilijkheid zit hem ook nog in het feit dat er een CMS gedraaid wordt, dus dat de url er ook als volgt uit kan zien:

www.mijnsite.nl?lang=ru

Dus alleen op basis van de GET request lang=ru zou er de cyrillische karakterset gestuurd moeten worden door apache.

iemand een idee?

  • Jaded
  • Registratie: Augustus 2001
  • Laatst online: 07-05 10:59
In Apache kun je sowieso beter de default karakterset uitzetten dan. Misschien dat dat al genoeg is om het te laten werken.

  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 27-08 07:06

Tuxie

En WeL nU!

Topicstarter
Nee, dan wordt er overgeschakeld op UTF-8 en dat gaat zelfs voor frans en duits fout... :?

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 19-06 22:04

Gertjan

mmmm, beer...

Zou je dit niet gewoon in je applicatie af moeten vangen? Bijvoorbeeld in PHP:
PHP:
1
2
3
4
5
6
7
8
9
10
$requestMethod = $_SERVER['REQUEST_METHOD'];

if($requestMethod == 'GET') {

    if(!isset($_GET['lang'])) {
        if($_GET['lang'] == 'ru') {
            header('Content-Type: text/html; charset=ISO-8859-1');
        }
    }
}


En dan dus de goede charset voor cyrillic-windows 1251 meesturen in die header?

/edit
voor russisch zou het dan zoiets worden:
PHP:
1
header('Content-Type: text/html; charset=iso-8859-5');

[ Voor 21% gewijzigd door Gertjan op 18-10-2004 09:31 ]


  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 27-08 07:06

Tuxie

En WeL nU!

Topicstarter
AlI iZ mUn HeLd _/-\o_ ;)

Er zat 1 klein dingetje in deze code, er wordt altijd een language default geset, dus de NOT (!) moest weg, anders valt hij nooit in die conditie. Ik heb deze code in een template verwerkt. Het kan idd dus ook makkelijker met php code, maar ik ben nog steeds benieuwd of je dit ook ergens in apache kunt regelen.

Maar het werkt dus bedankt !

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 19-06 22:04

Gertjan

mmmm, beer...

You're welcome :D

Die '!' moest inderdaad nog weg, ik had dat stukje gekopieerd uit een van mijn eigen applicaties maar was vergeten dat aan te passen. :)

[ Voor 5% gewijzigd door Gertjan op 18-10-2004 17:12 ]

Pagina: 1