Ieviešam UTF-8
Nov 05, 2003
Ievads
Kopš izlasīju Laacz pasviesto rakstu par Unicode, vairs normāli dzīvot nevarēju. Vairs nevarēju naktīs mierīgi gulēt, galīgi nezināju, kur dēties, ko ķert, ko grābt, man vajadzēja UTF-8.
Tajā pašā laikā, nevarēju un nevarēju saņemties un pārtaisīt visu to padarīšanu no windows-1257 kodējuma šajā skaistajā, labajā un vienīgajā īstajā kodējumā. Kamēr izpratne par lietas smalkumiem bija miglaina, bija arī grūti sākt kaut ko darīt.
Pie darba
Tagad, kad lielais darbs ir apmēram galā, jāsecina, nekā tāda visā procesā nav. UTF-8 nav nekāds lielais bubulis. Ja jāveido jauna mājaslapa un ir vēlme izmantot UTF-8, viss ir pavisam vienkārši. Jāpārliecinās, ka lietotais teksta redaktors atbalsta šo kodējumu, un html dogumentu galviņā tur, kur parasti rakstam "windows-1257", turpmāk rakstīsim "utf-8". Un viss.
Kur man likties ar savu krodziņu
Ja jāveic jau esošas mājaslapas pārveide, nāk klāt vēl viens darbiņš. Jau esošie dati arī jāpārkodē jaunajā kodējumā. Pameklējot pa internetu, neatradās neviens rīks, kas nodarbojas ar kodēšanu no viena kodējuma otrā. Apjautājos PHP forumā un Roze ieteica izmantot php iespējas, - iconv bibliotēku.
iconv uzstādīšana
Manai PHP instalācijai pēc noklusēšanas iconv nestrādāja. Windows vidē PHP paplašinājumus (extensions) liek pie darba, atkomentējot attiecīgo php.ini faila rindiņu . Jāpārliecinās, ka tajā pašā php.ini failā ir norādīts pareizs ceļš uz PHP paplašinājumu mapi. Tālāk, sistēmas mapē (tipiski "c:\windows\system", ja ir win9x un "c:\windows\system32", ja ir NT/2K/XP) jāiekopē iconv.dll. Šo failu var gadīties sajaukt ar php_iconv.dll, kas ir pavisam cits fails. Īstais iconv.dll atrodas mapē "c:\PHP\dlls\" (pieņemot, ka pats PHP atrodas iekš "c:\PHP\"). Ja viņa tur nav, vai nav pat tādas dlls mapes, visu to padarīšanu dabū, no lv.php.net novelkot PHP .zip arhīvā (Visas tās padarīšanas nav PHP instalācijā (.exe failā)). Visbeidzot jāpārstartē Apache. Par iconv sekmīgu darbību var pārliecināties kaut vai ar phpinfo() funkciju.
Ar rokām nē
Visbeidzot bija jāķeras pie failu konvertēšanas. Man dati stāv .txt failos, datubāzes nav, tāpēc uzrakstīju skriptu, kas ņemtu un visus tos failus pārkonvertētu, jo nebija pilnīgi nekādas vēlmes to darīt ar rokām. Līdzīgi, nekas neizdarāms nav pārkonvertēt datubāzes tabulu.
Viss tiešām tik vienkārši?
Jā, nekā pārdabiska un maģiska visā tajā UTF-8 padarīšanā nav. Šausmīgi ilgi ņēmos ar RSS barotnes labošanu, domājot, ka tā nevalidējas kodējuma dēļ, bet pēc 3-4 stundu darbošanās K|ng mani apgaismoja, kļūda bija gluži kur citur.
Kas tālāk
Jūtu patiesu līdzjūtību par šo mājaslapu. Kad ienāk prātā ko izmēģināt, kā jūs domajat, kas dabū ciest? Jā, protams, šī pati lapa. Tālāk plānā ir ieviest mehānismu, kas saīsinājumus un apzīmējumus automātiski ievietotu attiecīgajās xhtml birkās, uzlabot lapas usability, accessibility, un gan jau ar laiku būs jāķeras klāt lielajam bubulim XML+XSL/XSLT.
Vēl tādi nesen ieviesti sīkumi - komentāros tiek rādītas tikai tās e-pasta adreses, kas atbilst šablonam *@*.*. Čatotājiem - "/me eed burkaanu" tiek aizvietots ar "* caaliitis eed burkaanu". Normāla lieta, kaut ko labojot viskautkas cits atkal tiek sabojāts un tiek ietaisīti jauni caurumi un nebūšanas, bet tāda ir dzīve. Ja gadās novērot kādas nebūšanas, lūdzu informējiet.