ugrás a tartalomhoz

Áttérjek-e utf-8-ra a jelenlegi iso-8859-2 kódolásról a weboldalamon?

s_volenszki · 2008. Május. 15. (Cs), 21.38
Sziasztok!

A (közel)jövőben tervezem átépíteni a weboldalamat és felmerült bennem a gondolat, hogy a karater kódolást változtassam-e? Segítsetek nekem válaszokat kapni:

- Miért érdemes utf8-at használni?
- Kell utf8-at használni?
- Ha a jelenlegi oldalam iso-8859-2 és mysql-ből épül latin2-es karakter szettel, akkor mire kell figyelnem az átépítés során, hogy a tartalom használható maradjon?
- Jelenleg iconv()-ot használok szerveren az AJAX-os kérésekkel utazó adatokhoz, továbbra is jó lesz ez nekem?
- Az oldalam által küldött levelek (SwiftMailer a barátom) igényelnek körültekintést?

Kíváncsian várom válaszaitokat,

s_volenszki
 
1

Egyszerűbb lesz az életed

Gully Foyle · 2008. Május. 15. (Cs), 22.00
Ha mindenhol UTF8-at használsz jelentősen egyszerűbb lesz az adatok kezelése, főleg, ha AJAX-ot is használsz. Csak annyira kell figyelned, hogy minden UTF8-as legyen: az adatbázis, a header-ök, és még a PHP file-ok karakterkódolása is.

AJAX-nál a BOM karakterekre ügyelj különösen, mert azok meg tudnak tréfálni.

Én nem sírom vissza azokat az időket, amikor imádkoznom kellett, hogy egy-egy ékezetes karakter megfelelően jelenjen meg mindenhol. :) És a különböző konvertálásokat sem hiányolom. :)
2

utf8

rrd · 2008. Május. 15. (Cs), 22.57
Eddig egyetlen indokot találtam ami esetleg gondolkodóba ejthet ezzel a kérdéssel kapcsolatban. Az pedig az, hogy MySQL 5 előtt nincs magyar collation az utf8-hoz. Máskülönben egyértelmű utf8 mindig és mindenhol.
3

mysql5 magyar egybevetés

gex · 2008. Május. 16. (P), 00.04
hiába van, ha nem jó ;)
http://weblabor.hu/blog/20070104/mysqlhucollation
5

Nem tűnik nem jónak

Balogh Tibor · 2008. Május. 16. (P), 08.32
Idézetek a helyesírási szabályzatból:
  • "A betűrendbe sorolás szempontjából nem teszünk különbséget a kis- és nagybetűk között."
  • "A magánhangzók rövid és hosszú változatát jelölő betűk mind a szavak elején, mind pedig a szavak belsejében azonos értékűnek számítanak a betűrendbe sorolás szempontjából. A magánhangzó hosszú változatát tartalmazó szó tehát meg is előzheti a rövid változatút."


Az általad említett blogbejegyzésnél hibásnak vélik, hogy az [a-á], [a-Á], [á-A], [A-Á] betűket a MySql rendezés azonosnak tekinti. A Magyar Tudományos Akadémia szerint is azonosak.

Az abc-be sorolás egyebként ennél sokkal bonyolultabb. Lásd: Helyesírási szabályzat. Ezért egészen biztos, hogy a betűrendbe sorolás nem mindig helyes, de nem azért, ami a blogbejegyzésben felemlítésre került, hanem mert elég bonyolúlt, amit nem könnyű implementálni.

Például: A kettőzött betűket két külön betűre kell bontani, ccs - cscs, a rendezéshez. De ugye, ha a szóban nem cscs szerepel, hanem egy c és egy cs betű, akkor az nem cscs, hanem ccs. Aminek eldöntéséhez már mesterséges inteligencia kellene.
8

teljesen igazad van :)

virág · 2008. Május. 16. (P), 11.22
Igazad van, de a MySQL-nél örök visszatérő téma a rendezés (egyébként más szoftvereknél is, MSSQL-nél is szoktak érdekes dolgok történni stb. stb.).
Merész és meggondolatlan leszek, de szerintem a szoftverek nem butábbak nálunk embereknél, kíváncsi lennék arra, hogy 100 emberből hány ismeri az ABC-be sorolás pontos szabályait... Persze nem ér könyből lesni, hanem csak úgy frappánsan, azonnal rávágósan :). Szerintem ha 5 igen (hiba nélkül), akkor elégedettek lehetünk... Ezzel arra akartam kilyukadni, hogy rendezésnél ha a felhasználó egy listát nézeget teljesen elégedett azzal, ha az A betű után nem a T jön, hanem legalább a B, hiszen ő sem a helyesírási kézikönyvet lapozgatja közben.

:)

Persze ettől egy szoftverben meg lehet írni egyszer rendesen és akkor mi kényelmesen felejthetünk tovább (mint a kézírást).
15

Persze, hogy igazam van! ;)

Balogh Tibor · 2008. Május. 16. (P), 22.23
Merész és meggondolatlan leszek, de szerintem a szoftverek nem butábbak nálunk embereknél, kíváncsi lennék arra, hogy...

Igen, merész és meggondolatlan kijelentés, mert egyértelműen nem igaz. Elkerülted azt a nyilvánvaló dolgot, hogy a szoftvereket is emberek készítik.

Maga a magyar rendezési szabályok nem triviálisak. Fejből egészen biztos sokan nem tudnánk felsorolni minden szabályt. Régebben csináltam magyar rendezést végző függvényt, akkor átnéztem a szabályokat. Erősen barokkos túlzás lenne, ha azt mondanám, hogy nem volt semmi új, a rendezési szabályok átolvasásakor. De egyértelmű, hogy ha ír valamit az ember, akkor utánanéz valamennyire.

Maradhatunk annyiban esetleg, hogy nem felesleges normális programokat készítenünk. Mármint kiszámíthatóan működő programokat. :)
16

kicsit off

zzrek · 2008. Május. 17. (Szo), 14.54
Bocs az offért, és tudom, hogy nem értenek egyet sokan, de muszáj ideírnom, mert erősen ez jutott eszembe:
Ha az emberek nem tudnak kiigazodni egy nyelvtani vagy ehhez hasonló (pl. jelen esetben a rendezési) szabályon, pedig lehetne egyszerűbbet is csinálni (valószínűleg), olyat amin könnyebb lenne kiigazodni, akkor nem az emberekkel, vagy a szoftverekkel van gond, hanem a szabályozással. Nem az emberek buták, vagy a szoftverek csinálják rosszul, hanem a nyelvészek végezték rosszul a munkájukat.
(Persze nem néztem át a témát és biztosan lennének ellenérvek, de tekintve a mai viszonyokat szerintem lenne egyszerűbb rendezési szabály is, kevesebb kivétellel, amit mindenki - ember és szoftver is - könnyebben értelmezhetne)
(Ha pedig normálisan értelmezzük, hogy virág mit akart mondani azzal, hogy "...szerintem a szoftverek nem butábbak nálunk embereknél..." akkor virággal értek egyet)
17

Nagyon off

Balogh Tibor · 2008. Május. 17. (Szo), 16.22
Virág mondatából születnek olyan mondatok amik végül nálad is szerepelnek, hogy: "amit mindenki - ember és szoftver is - könnyebben értelmezhetne".

Néhány pontosítás, ami eszembe jutott a hozzászólást olvasva:
A nyelvi szabályok egy része előbb keletkeztek, előbb lettek, mint ahogy a nyelvészek megfogalmazták volna őket. - Ahogy a fizikai törvények attól függetlenül léteznek, hogy a fizikus felfedezte volna őket vagy sem.
A másik részük meg "gyártott" szabály, ami mögött remélhetőleg valamiféle ok is szerepel.

Így eléggé elhamarkodottnak tűnik azt kívánni, hogy akkor gyártsanak könnyebb szabályokat, mer azokat mindenki meg fogja érteni.
18

mégoff

zzrek · 2008. Május. 17. (Szo), 17.56
Csak az általánosságot akartam kifejezni etéren is, hogy mindig az egyszerűbb szabály a jobb (fizikában is). Teljesen mindegy, hogy előbb alakult ki magától, vagy hozzáértők csinálják: akik azzal foglalkoznak, törekedjenek a legegyszerűbbre (és az egyszerűséget persze lehet sokféleképp értelmezni). Piszkálja a szemem, ha úgy érzem, hogy valamit feleslegesen túlbonyolítanak. (És persze illik követni az "idő szavát" is.)
Ha tudsz valami fórumot, ahol folytathatjuk, ideírhatsz egy linket, nem akarom teleoffolni a topicot.
Bár azt hiszem, túl van tárgyalva, mindketten elmondtuk amit akartunk, köszi a beszélgetést.
4

Nyomós érv...

s_volenszki · 2008. Május. 16. (P), 08.19
...pláne, hogy 4.1.22-standard a MySql verzióm!
14

mérlegelni itt is kell

Hodicska Gergely · 2008. Május. 16. (P), 20.22
Máskülönben egyértelmű utf8 mindig és mindenhol.
Pont MySQL viszonylatában azért érdemes mérlegelni. Korábbi verziókban pl. az InnoDB esetében egy UTF8 karakter fixen 3 byte-on volt tárolva, de MyISAM esetén is előállhat ilyes eset. Ezért arra érdemes figyelni, hogy azon mezők esetén, ahol nem fordulhat elő UTF8 (pl. lehet mindenféle kódolás, ahol ez biztosított), akkor ott ne használjuk, mert lényegesen több helyet foglalhat el az adatunk, mint amennyi amúgy elég lenne.


Üdv,
Felhő
6

nyelvektől függ

Szekeres Gergő · 2008. Május. 16. (P), 10.21
szerintem ha egy nyelvű oldalad van, akkor nem feltétlen előny az utf. az ajaxnál valóban előnyt jelent, de az is megoldható, és a php beépített stringfüggvényei rendre elhasalnak az utf8 kódoláson. elég sokat lehet szenvedni amig egy nagyobb méretű siteot átalakítasz utfre. ha újat csinálsz akkor persze már ajánlott így tervezni.
7

Outlook

vbence · 2008. Május. 16. (P), 11.07
Tapasztalataim szerint az egyes outlook verziók nem tudják megjeleníteni az UTF-8 kódolású leveleket.
9

2008!

Bártházi András · 2008. Május. 16. (P), 11.33
Én csak annyit teszek hozzá ehhez a beszélgetéshez, hogy sajnálom hogy ez ilyen kontextusban még mindig kérdés lehet 2008-ban. ✰✰✰ I ❤ UTF-8 ✰✰✰
10

Mármint mi?

s_volenszki · 2008. Május. 16. (P), 12.09
Nem teljesen értem, amit mondasz. Ez azt jelenti, hogy 2008-ban aki webfejleszt(get)éssel foglalkozik, annak eszébe sem juthatna más mint az UTF-8?

Sokat gondolkoztam és igazából olyan helyzetbe kerültem, ami a legrosszabb! Ugyan is a jelenlegi ISO-8859-2 kódolással nekem semmiféle problémám nem akadt, AJAX-szal volt kis gebasz, de azt az iconv() helyrerakta. Ennek ellenére megfordult a fejemben (látom, egyre többen használják), hogy ha már amúgy is átdolgozom a kódomat, miért is ne lehetne UTF-8 az oldalam kódolása!

Most ott tartok, hogy gyűjtöm az előnyöket, hátrányokat és úgy áll a helyzet, hogy nem látom (vagy nem értem) miért lesz jobb az UTF-8! Egy kicsit olyan önsanyargatós érzés, elkezdeni egy átállást úgy, hogy a meglévő "jól" működőt szándékosan olyanra cserélem, ahol keresni kell a kiskapukat!

Aki ritkán használja az autóját, annak jó egy kisköbcentis benzines autó, mert csak 4-6 liter benzint fogyaszt, de aki 5000Km-t megy egy hónapban annak kifizetődő egy sokkal drágább dízel!


Segítenétek megérteni, hogy miért lesz jobb!
11

miért lesz jobb

rrd · 2008. Május. 16. (P), 12.36
Nem feltétlen lesz jobb, de nem lesz rosszabb sem. Nekem iso8859-2 volt egy alkalmazásom egy darabig, aztán betettem egy új funkciót ami megkövetelte az utf8-at. Ezután áttettem a teljes rendszert utf8-ra. Sokszor előfordul, hogy a kezdeti állapotban nem látjuk, hogy pontosan milyen irányokba mehet a fejlesztés. Szóval akkor jobb egy tágabb karakterkódolást választani. Visszatérve az esetemre beregisztrált egy holland/dán emberke akinek a nevében volt valami fura karakter amitől az iso megfeküdt és a weblap egy része szétesett tőle.

Egy másik alkalommal az eredetileg iso-ra kódolt filejaimat Macre költözéskor a gép átkódolta, ahogy neki tetszett, na az igazi rémálom volt kijavítani. Azt utf az meg mindenhol utf.

Persze nem kötelező ha kiszolgálja az igényeidet az iso és már fut vele a rendszered, akkor használd azt. Később ha kell jó eséllyel 3 perc alatt konvertálhatod mindenestől. Ha újat kezdesz akkor meg kezd utf-fel.
12

egyetértek

Szekeres Gergő · 2008. Május. 16. (P), 15.53
ha a régi megy minek kellene átírni? magyar karakterekkel teljesen jó az iso-8859, a baj akkor kezdődik, ha többnyelvűsíteni kell, vagy valaki beír egy idegen karaktert..

az új rendszereknél tényleg fölösleges vitatkozni, de nem az volt a kérdés.. :)
13

Azt hiszem, értem!

s_volenszki · 2008. Május. 16. (P), 18.00
Kezdem érteni a lényeget, azt hiszem!

Mivel az oldalam kizárólag kis hazánk népének szól és nem látom értelmét (üzletileg) idegen nyelvre lefordítani - tehát üzemszerűen nem célja, a magyar ABC karakterein kívül kiszolgálni más karatereket, így marad az ISO, ennek ellenére úgy gondolom, okulásképpen készítek egy "tanulmány oldalt" UTF-8-ban!
19

Nem értem én ezt..

Ustak · 2008. Szep. 12. (P), 16.00
Sziasztok ,szerver oldalon encodolás ügyileg kicsit hiányos vagyok...
szóval itt van honlap:
eme honlap
ubuntu alatt és vim -el készült, és szépen is működött minden. Felrakatam a tárhelyre.
És íme, ilyen csúf, az automatikus felismerés nem ismeri fel az utf-8 at, már az adatbázisból jövö termékek viszont normálisan jelennek meg, sőt azok a menüpontok is, melyeket dinamikusan hozok létre az adatbázisból (ezek a "termékek" menüpont alatt vannak.
szóval miért? Nálam teljesen jó volt, és megnéztem, a fájl set fileencoding direktívája vim alatt utf-8 at ad vissza, tehát a fájl kódolása jó. Ha adok hozzá headert , ha nem, a végeredmény nem változik.
Szóval ha tudnátok magyarázatot eme furcsa hibridre, nagyon örülnék neki!
Köszönöm!
20

Új kérdés új téma

vbence · 2008. Szep. 12. (P), 16.11
Illett volna elolvasni a szöveget a gomb elett, amit megnyomtál, de ha márígy tettél itt egy lehetséges válasz:

Nézd meg a response hedereket (mondjuk a firefox developer tollbarjának segítségével, vagy akár telnettel). Lelövöm a pojént, de a szerver iso8859-2 -t küld a fejlécben.
21

Nincs új téma, én voltam béna

Ustak · 2008. Szep. 12. (P), 20.06
még rímel is. Azt hittem raktam headert() de nem raktam. Köszi és bocsi!