Haszprus

Áttérés UTF-8-ra

©   Haszprus   |   fejlesztés

Megpróbáltuk, egyelőre sikertelenül. Egy másik topicból áthelyeztem ide ezt a beszélgetést. Ezzel mellesleg tesztelem az új feature-t, a kommentáthelyezőt, amit direkt most fejlesztettem (OO).

(Rögtön felmerül egyébként (illetve már ezer éve felmerült), hogy vajon nem kéne-e a kommentek sorszámát is db-ben tárolnom, ahelyett hogy a megjelenítéskor egy ciklus generálja. Nem tudom. Igazából ez egy ritka problémára lenne megoldás, nem ítélem túlzottan fontosnak.)

RSS: hozzászólások ehhez a bejegyzéshez 33 hozzászólás

Szólj hozzá Te is!

#10 pfuj iso-8859-2. miért?

Egyébként meg: deviantART: ralesk – én is tudósítottam egy picit (lesz több is, majd pár nap múlva elárasztom a népet még egy-két adaggal)

Jobb mint a windows-1250, nem?
UTF-8-ra egyelőre nem tudtam rájönni hogy miként térjek át. Kiadom a parancsot a db-nek, oszt nem történik semmi Azon kívül hogy utf8-nak hiszik magukat a mezők a phpmyadmin tanúsága szerint. De ugyanúgy marad minden az eddigi encodingban.

A windows-1250-ben legalább vannak idézőjelek az UTF-8 meg ment nekem minden izélés nélkül Perl alatt, semmi extrát nem kellett csinálni, maga a Perl forrás abban van, a kiadott HTML abban van, emiatt a formok adatai abban vannak, a MySQL-em pedig asszem csak 4.0-s és úgy tűnik, a legkevésbé sem zavarja, hogy ő most latin-valamit vagy utf-8-at kap.

De te akkor egy új, üres db-t kezdtél utf8-as szövegekkel feltölteni, nem?

Mondjuk igen, már az elejétől fogva úgy ment. Most már értem a probléma lényegét

#12, majd ha valami elorelepes lesz ebben a mysql-utf8 dologban, szolj, en is kivancsi vagyok ra.

#14: szerintem valami ilyesmi a megoldás:

mysqldump -uusernév -ppassword adatbázis >dump.sql
recode l2..u8 dump.sql
*dump.sql elejére beírni: CREATE DATABASE ujadatbazis; USE ujadatbazis;, átírni az encoding mezőket, ha benne van a dumpban*
mysql -uusernév -ppassword <dump.sql

feltéve ha a recode fel van rakva a szerverre. szerintem az nem várható el a mySQL-től, hogy futó adatbázison az encoding mező átírásával az egész adatbázist újrakódolja.

hm, feltettem recode-ot, ugy tunik ez nem rossz megoldas, koszi Tamas

#18 Thx, de… shell hozzáférésem nincs. (PHP-ből sem tudok végrehajtani shell parancsokat.) Ez még nem gond, mert a phpmyadmin tud dumpot exportálni/importálni, de a recode már problémásabb. Arra egyéb megoldás?

/* ezen a ponton hoztam át a kommenteket innen */

Én ISO-8859-1-et használok, eddig semmi bajom nem volt vele.

UTF-8 jó dolog, én elismerem, de PHP-t és MySQL-t elég nehéz beidomítani rá, nekem még nem sikerült.

Dumpold ki az egész adatbázist, írd át a megfelelő mezőket (CREATE DATABASE, stb.), meg mondjuk jEdit-tel (vagy iconv, stb.) konvertáld át a dumpban lévő szövegeket is UTF-8-ra. Így mennie kelene. Na meg figyelj arra is, hogy a HTML forrásban a <head> között lévő metainformáció is UTF-8, valamint a HTTP fejléc is azt mondja, hogy UTF-8 a lap.

Windows alatt erre pl. egeszen nagyon alkalmas az www.editplus.com/, de akar a Notepad is.

PS: R elfelejtette a jelszavat es nem otthon van, ugyhogy nem sikerult bejelentkeznie


palacsint: a vim viszont igen, igaz, hogy azt a klikkelgetos interfeszhez szokott juzerek nagyon nehezen szokjak meg

A vi és leszármazottai szerintem kb. a DOS-os edlinnel összemérhetőek kényelemben (bár tudásban természetesen nem) – szóval akkor inkább használok joe-t

Ralesk: nagyon szokni kell, meg szet kell kusztomizalni, de utana mar isteni. csak van egy minimum ket hetes tanulasi idoszaka, elegge steep learning curve-vel. ugyanugy nehez beletanulni, mint az emacs-ba, de nekem most mar harom-negy heti kemeny kenyszerites utan (ertsd: az /usr/bin/jed-et symlinkeltem az /usr/bin/gvim-re) fel sem tunik, hogy modot kell valtani ahhoz, hogy beirhassak valamit.

Tamás: nálam pont a durva learning curve miatt az emacs és a vi* a felesleges szopatás kategóriába el Biztos jók, de én nem szeretek feleslegesen heteket eltölteni egy programmal; ha az kell, meg szét kell kasztömizálni, akkor valószínűleg szofterergonómiailag és használhatóságilag ratyi a program, még ha sokat tud is.

Na egy időre visszaraktam a windows-1250-et.

Ralesk: a helyzet nem ilyen egyszeru. a durva learning curve nagy resze abbol ered, hogy az iranyitas nekunk, mint klikkelgetesen es nem modalis editorokon szocializalodott felhasznaloknak kurva szokatlan. kepzeld el, hogy mondjuk Dvorak-kiosztasu billentyuzeten kellene hirtelen megtanulnod gepelni, az is latszolag felesleges szopatas lenne, pedig semmivel sem kevesbe logikus, mint a QWERTY-kiosztas (sot, tudjuk, hogy a QWERTY miert lett pont ilyen, mert jartunk talalmanyok es erdekessegekre), csak mas. produktivitasban nagyot tud dobni a vi vagy az emacs, ha egyszer megtanulod, de persze addig csak szenvedes, amig nincs a kisujjadban a legtobb billentyukombinacio ugy, hogy nem is tudod oket felidezni akaratlagosan, csak hasznalod oket.
szetkusztomizalni meg azert kell, mert mindenkinek masok az igenyei - de legalabb a lehetoseged megvan ra, hogy szetkusztomizald. egy szimpla texteditorban valoszinuleg nem tudom atkonfiguralni a hotkeyeket vagy nem tudok makrokat irni. egy-egy szovegfajl alkalomszeru szerkesztesere persze teljesen jo a joe vagy a jed vagy a pico vagy akarmi, de mondjuk C programkod irasara vagy eppen iso-8859-2 -> utf-8 konverziora mar kevesbe

Na ja Mégis van egy csomó szövegfájl‐szerkesztő, ami azért egész hatékony parancsokkal rendelkezik, akár a gombok is személyreszabhatóak benne (bár én a „standardot” nemigen láttam szükségesnek megváltoztatni), makrók is vannak (bár én sosem használtam), van benne még akár regexpes kereső–cserélő… mégsem kell kínok kínját megélnem, hogy beírjam egy fájlba, hogy Hello world, és azt elmentsem, mint az emacs‐szal volt

Bár valóban, kinek a pap, kinek a papné Én szeretek egérrel navigálni, rásegíteni a kijelölésre, drag‐and‐drop kopírozni/mozgatni (ilyet pl. még nem is láttam linuxos szövszerkben) – ám ettől függetlenül rengeteg sok mindent kizárólag billentyűzettel végezni.

drag‐and‐drop kopírozni/mozgatni (ilyet pl. még nem is láttam linuxos szövszerkben)

Pfff… Ez most komoly, ilyenek h openoffice, nem tudnak drag&dropot a szövegben?

Most szövegesfájl‐szerkesztőre gondoltam, nem irodai alkalmazásokra. (de egyébként ha tud valaki egyet, akkor tessék megmutatni (és tudjon kb. annyit, mint az EditPlus))

Ralesk: nekem meg az esetek tulnyomo tobbsegeben nincs eger bedugva a laptopomba, sot a touchpadet is szivem szerint ki szoktam kapcsolni btw megmondom, milyen feature-oket hianyolok a legtobb editorbol, ami miatt kenytelen voltam rafanyalodni a vim-re:

* nem akarok ablakot valtani ahhoz, hogy egy szimpla make parancsot lefuttassak
* ha nagymeretu forraskodot szerkesztek, szeretem foldolni a program azon funkcionalis egysegeit, amikhez epp nem nyulok, hogy atlathato legyen
* programforditas utan megtehessem azt, hogy a fordito hibauzenetere Enter-t bokve felhozza nekem a megfelelo forrasfajl megfelelo sorat
* tudjon rendesen syntaxhighlightolni, indentalni, automatikusan (Python forraskodot is)
* legyen benne tab completion a legtobb programozasi nyelvhez
* legyen benne valamilyen script- vagy makronyelv

bar ezek kozul sok mondjuk nem feltetlenul egy szimpla texteditor, hanem inkabb egy IDE feladata lenne, de sajnos olyan IDE-t sem talaltam meg eddig, amely mindezeket maradektalanul tudna, gyorsan bootol es nem zabalja a memoriat meg a merevlemezt.


Kell egyáltalán escape-elni a karaktereket utf8 esetén? \hö\ ? Mert nekem úgy tünik, hogy nem, viszont nem tudom ettől még valaki benyomhat-e esetleg valamiképpen a stringbe egy olyan idézőjelet vagy aposztrófot, ami ténylegesen módosítja a queryt.

Mondjuk lehet hogy ez a fölösleges backslash csak ideiglenesen jelenik meg és ha meg lesz oldva az utf8 akkor eltünik ez a probléma, nemtom.

UTF-8 alsó 128 karaktere megegyezik az ASCII-vel, a felső karakterek pedig sosem tartalmazzák azokat (kis ferdítéssel akár úgy is fogalmazhatnék, hogy „prefixÁ). Van értelme escape-elni a csúnyább karaktereket, mint pl. a \\\', \\\, ; valamint a HTML-ből a <, >, &.

Viszont valami nagyon bugos lehet, mert az idézőjel-csicsásítód előbb jön, mint a stripslashes, meg a felső-99 idézőjel abszolút meg van zabálva.

Vajh miért jelennek meg ezek rosszul? Összesen egyszer escape-elem őket (insertnél). Ha nem escape-elem, akkor meg jól jelennek meg.

Viszont valami nagyon bugos lehet, mert az idézőjel-csicsásítód előbb jön, mint a stripslashes

Hova kellene stripslashes-t használnom? Kizárólag db insertnél van addslashes, bár ezt az utóbbi 1-2 napban rohamléptekben alakítottam ilyenre.

Én csak perllel tudom, hogy megy; ott az SQL lekérdezésben ?-eket használok, és reménykedem, hogy nem bugos a DBI.pm (mert alapból van injection-védelem a placeholderes queryben). Legalább is ha jól hallottam :|

Szóval én nem szórakozom perjelekkel, de valahogy még nem tudtam injektálni Persze attól még lehetek csupán egy rossz hacker

----

Haszprus: ha van addslashes, akkor valamikor le kell szedni őket

Szvsz nem kell stripslashes mivel a queryben csak amiatt szerepelnek a slashek hogy a php ne szakítsa félbe magát a query stringet, de a php ezt feldolgozva már slashek nélkül adja oda az sql-nek (a queryt).

(Egyébként hogy ne írjak hülyeséget ezt most ki is próbáltam, és ez a helyzet )


idézőjel teszt
zsír.
magától megoldódott kategória...
szerintem (és ezt a napközbeni tesztjeim alátámasztják) az elmúlt napokban be volt kapcsolva a szerveren a magic quotes, for some reason, és most már ki van kapcsolva.

Dejó ilyen van nálam is, de nekem regexszel csinálja.

(Ömm és ez most hogy jön ide? Itt február 18 óta van, csak valami gáz volt a napokban a slasheléssel.)
Hozzászólásod:


Nem vagy bejelentkezve, de...

A)
hozzászólhatsz regisztrálatlanul...

B)
ha regisztrálva vagy, bejelentkezhetsz...