Drupalból elküldött html ürlap kódólása ISO8859-2-re

Anonymous képe

Sziasztok!

Sajnos olyan problémával találkoztam a drupal oldalam használata során, ami meghaladja a tudásomat, már átnéztem a forumot, meg kipróbáltam egy-két dolgot, de nem működik...

A problémám a következő:

Weboldalamon egy html űrlappal gyűjtöm a feliratkozókat, ez továbbítja az adatokat az autorespondernek. A responder ISO8859-2 fogadná, a drupal oldalban beillesztett kód viszont UTF8-ban küldi. Ezért az ékezetek helyén karakterek jelennek meg.

így néz ki az űrlap kódja:

<form name="subscribeform" method="post"  action="http://autoresponder.hu/proba/register.cgi">
  <input type="hidden" name="account" value="11">  
 
  <table width="100%" border="0" cellspacing="0" cellpadding="4">
   <tr>
    <td align="right" width="49%"><b>Név:</b></td>
    <td width="10%">
     <input type="text" name="name" size="25" maxlength="40" >
    </td>
    <td width="40%" id="validatenamemess" align="left" style="color : red; white-space: nowrap; font-weight : bold;">*</td>
   </tr>
   <tr> 
    <td align="right" width="49%"><b>Email:</b></td>
    <td width="10%">
     <input type="text" name="email" size="25" maxlength="40" >
    </td>
    <td width="40%" id="validateemailmess" align="left" style="color : red; white-space: nowrap; font-weight : bold;">*</td>
   </tr>
 <tr> 
   <td align="center" colspan="3"> <input type="submit" value="Feliratkozom"></td>
 </tr>
 </table>
</form>

Ha a name mezőbe nem ékezetes nevet adnak meg akkor semmi gond sincs.

Megpróbáltam a meta tags modult felrakni és oda beszúrni a

<META http-equiv=Content-Type content="text/html; charset=iso-8859-2"> 

sort
de nem működik
Megpróbáltam az inconv parancssal, de úgy sem lett jó (nem is értek annyira hozzá)
Tudtok valami ötletet adni, hogyan oldhatnám meg a problémát?
Hojtsy Gábor képe

A Drupal mindenképpen utf-8 kódolással működik, mert eza legpraktikusabb, ha bármilyen nyelvi kódkészletet akar támogatni az ember. Például megjeleníthetsz német, japán és arab karaktereket is ugyanazon az oldalon. Neked most ennél persze gyakorlatibb problémád van :)

Namost azt kell tudni, hogy egy weblap mindenképpen csak egy kódolású lehet egyszerre. Mivel az oldalon Drupal által generált tartalom is ki van írva, ezért az oldal utf-8 kódolású, ez van. Alapesetben a böngészők az űrlapot az oldal kódolásával küldik el. Ez meta elemből nem változtatható, mivel a Drupal okosan HTTP fejlécet küld a használt kódolásról és azt meta elemben nem lehet felülírni.

Tehát két lehetőség van. Vagy olyan oldalba rakod az űrlapot, ami latin-2 kódolású, vagy megoldod, hogy az űrlap latin-2ben küldje az adatokat. Az elsőre megoldás hogy iframe elembe rakod az űrlapot, amit a szerverről külön fájlból töltesz be az oldalba. Akkor annak már lehet saját kódolása. A másodikra a HTML elvi megoldást ad azzal, hogy megadhatod az accept-charset="iso-8859-2" attribútumot a form elemen, amivel elvileg a böngészőnek meg kellene értenie, hogy a submitot fogadó csak latin-2 kódolást ért. Ezt ismereteim szerint kevés böngésző támogatja (gyakorlatilag nem lehet rá építeni). Itt van egy eléggé régi teszt: http://www.goof.com/pcg/marc/browser.html

Végül szerintem legjobban akkor jársz, ha valamilyen Drupalon belüli megoldást használsz. A webform modul például pont ilyen űrlapok adatainak a begyűjtésére szolgál.

0
0
Anonymous képe

Köszi az ötleteket!

Az iframe tűnt a legegyszerűbbnek, és működik is.

0
0