Autor | Zpráva | ||
---|---|---|---|
filiphk Profil |
#1 · Zasláno: 1. 8. 2008, 10:16:48 · Upravil/a: filiphk
Ahoj,
pokud do formuláře zadám písmeno s diakritkou a za něj tečku, tak po odeslání dotazu se převede na jiné písmeno či písmena, a to následovně: zadané písmeno - po odeslání dotazu ě. - ec š. - a ř. - f ž. - e ý. - fd á. - e í. - ed é. - e ť. - d ď. - ef ň. - f ó - d ú - fa ů - f Nevím, proč to způsobuje zrovna tečka, jelikož když napíšu za písmeno kterýkoliv jiný znak, výsledkem je písmeno bez diakritiky (např. "á*" se správně převede na "a"). Možná by pomohlo upravit následující podmínku tak, aby "nepropouštěla" tečku, bohužel však nevím jak: RewriteRule ^jmeno/(.*)$ vyznam-jmen?hledat=dotaz&jmeno=$1 [L] Formulář je dostupný na adrese http://www.filda.cz/vyznam-jmen |
||
srigi Profil |
#2 · Zasláno: 1. 8. 2008, 12:51:09 · Upravil/a: srigi
Prejdi na kodovanie UTF-8 a bude pokoj. CP-1250 je fakt na pikacu kodovanie. Nezabudni, ze rovnake kodovanie musi mat sablona (HTML dokument) aj .php skript co to bude spracovavat.
A pozor na BOM. |
||
peta Profil |
#3 · Zasláno: 1. 8. 2008, 13:19:05 · Upravil/a: peta
srigi
UTF-8 je o moc lepsi, ze? 2 byte na 1 znak mi tolik uzasne neprijde. Nehlede na chyby v PHPMyAdminu, ktery ti vygeneruje z tabulky UTF8 data pri nastavenem UTF8 jako double. Cili 123 jako xyz1xyz2xyz3. Rovnou jsi mel rici, ze problem je v tom, ze server pouziva UTF8 a jeho program ma spatne nastavene kodovani, zrejme WIN1250. Problem je ale s tim, ze server ma jine kodovani. Ze se jedna o UTF8 je spis nahoda, linuxove pravdepodobna. Co kdyz by to rozjizdel na MS IIS? :) _Slzy vzpomínek_ (prvotina), 20. 2. 2005 _Snění_ , 28. 2. 2005 zkusil bych podtrhavat jen nazev basne |
||
filiphk Profil |
#4 · Zasláno: 1. 8. 2008, 13:28:56 · Upravil/a: filiphk
Nechtěl jsem tu vyvolat hádku o tom, které kódování je lepší, ale získat radu co s tím. Nejsem sice v tom odborník, ale kdyby bylo zvoleno špatné kódování, tak by to zřejme špatně převádělo všechna písmena s diakritikou a ne jen v případě, že se za ním udělá tečka.
Převést web do UTF-8 by možná bylo řešením, ale raději bych zůstal u současného kódování Windows 1250. |
||
filiphk Profil |
#5 · Zasláno: 2. 8. 2008, 01:07:33
Žádné další rady? Je mi divné, že k tomu dochází jen v případě, že se za písmeno s diakritikou napíše tečka, jinak se vše převádí správně.
|
||
filiphk Profil |
#6 · Zasláno: 3. 8. 2008, 00:59:12
Problém vyřešen, za problém s tečkou mohly řádky v .htaccess, které "opravují" adresu:
RewriteBase / RewriteCond %{QUERY_STRING} ^(.*[^\.\?\),!-"'])[\.\?\),!-"']+$ RewriteRule ^(.*)$ $1?%1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-F RewriteRule ^(.*[^\.\?\),!-"'])([\.\?\),!-"'])+$ $1 [R=301,L] |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0