Pereiti prie turinio

Bėda su kalbos kodavimu :(


Rekomenduojami pranešimai

Neišgaunu normalių lietuviškų raidžių nesuprantu kur problema kalbos kodavime ar kur kitur?

php faile

<?php
$result = mysql_query("SELECT * FROM city ORDER BY seo");
while ($row = mysql_fetch_array($result))
{
   $seo = $row["seo"];
   $name = $row["name"];
echo "<option value=\"$seo\">$name</option>";
}
?>

 

headeris

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

 

Pats puslapio failas taip pat užkoduotas utf8. Esmė, kad Klaipėda išveda Klaip?da

post-11964-0-59891000-1358091542_thumb.jpg

post-11964-0-26766400-1358091552_thumb.jpg

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O pats tavo PHP failas yra UTF-8? Pabandyk iš naujo suvesti įrašus. O šiaip, pasidaryk elementarų hex dumpą tam paimtam žodžiui „Klaipėda“ ir bus aišku, ar ten unikodas, ar ne...

 

Ir nenaudok mysql_* funkcijų.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O pats tavo PHP failas yra UTF-8? Pabandyk iš naujo suvesti įrašus. O šiaip, pasidaryk elementarų hex dumpą tam paimtam žodžiui „Klaipėda“ ir bus aišku, ar ten unikodas, ar ne...

 

Ir nenaudok mysql_* funkcijų.

 

Ta prasme nenaudot mysql * funkcijų? tai užklausoje nurodyti vietoj * eilučių vardus? * nesaugu? ar kaip ? :)

Kas tas hex dumpas lietuviškai nelabai google meta :) Pats failas utf-8 koduote, jūk paminėjau tai žinutėje + pasižiūrėk screenshotus kuriuos sukėliau, ten matosi lietuviško teksto :) manau čia sql, pasibandysiu per naują susikurti sql

 

Jeigu naudoji notepad++, tai savo PHP failui padaryk taip:

 

Toolbar'e yra Encoding -> Convert to UTF-8 without BOM.

 

Ir turėtų veikti lietuviškos raidės.

Naudoju jį, žinau, bandžiau su bom ir be jo :) be to pažiūrėk prisegtus screenshotus, ten yra lietuviško teksto, jeigu būtų blogas pats puslapio kodavimas, nerodytų ir kitų lietuviškų rašmenų :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ta prasme nenaudot mysql * funkcijų? tai užklausoje nurodyti vietoj * eilučių vardus? * nesaugu? ar kaip ? :)

Kas tas hex dumpas lietuviškai nelabai google meta :) Pats failas utf-8 koduote, jūk paminėjau tai žinutėje + pasižiūrėk screenshotus kuriuos sukėliau, ten matosi lietuviško teksto :) manau čia sql, pasibandysiu per naują susikurti sql

http://en.wikipedia.org/wiki/Hex_dump . Jei nemoki anglų kalbos – gali pirmiausiai mokytis ją.

Tiesiog tada matytum, jei tavo lietuviškos raidės užima tik vieną baitą – tikrai ne UTF-8, o koks nors cp1257. Jei pvz. anksčiau turėjai savo tinklalapį ne utf-8, o cp1257, tai naršyklė siuntė būtent tokią informaciją ir nesvarbu, kad mysql'e UTF-8 – taip ir įsirašė. Arba gal pats PMA yra cp1257, jei informaciją dėjai per jį.

 

Nenaudoti visko, kas prasideda "mysql_" – visos tos mysql API, vadinamos ext/mysql. Ji nėra funkcionali, patogi, saugi, šiuo metu yra deprecatinimo procese – jei apsilankytum PHP, ten pamatytum parašytą tą patį. http://php.net/manual/en/function.mysql-query.php

 

Naudok PDO. http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš gal durnai paklausiu, bet ar patys įrašai duomenų bazėj turi lietuviškas raides? Screen'o tokio nėra, su įrašais.

Surašyta į sql lietuvių kalba

 

http://en.wikipedia.org/wiki/Hex_dump . Jei nemoki anglų kalbos – gali pirmiausiai mokytis ją.

Tiesiog tada matytum, jei tavo lietuviškos raidės užima tik vieną baitą – tikrai ne UTF-8, o koks nors cp1257. Jei pvz. anksčiau turėjai savo tinklalapį ne utf-8, o cp1257, tai naršyklė siuntė būtent tokią informaciją ir nesvarbu, kad mysql'e UTF-8 – taip ir įsirašė. Arba gal pats PMA yra cp1257, jei informaciją dėjai per jį.

 

Nenaudoti visko, kas prasideda "mysql_" – visos tos mysql API, vadinamos ext/mysql. Ji nėra funkcionali, patogi, saugi, šiuo metu yra deprecatinimo procese – jei apsilankytum PHP, ten pamatytum parašytą tą patį. http://php.net/manua...mysql-query.php

 

Naudok PDO. http://wiki.hashphp....ySQL_Developers

Dėl anglų, tai pats savarankiškai minimaliai pasimokinu, ačiū už paskatinimą :) svetainę rašau nuo 0, pasiėmiau paprasta html template ir programinu :) infromaciją dabar rašau per phpmyadminą kadangi, dar nėra puslapije tokios funkcijos :) pabandžiau pakeisti cp1257 kodavimą visur, pasiketė kodavimo ženkliukas, bet vistiek taisiklingai neiškoduoja, o sakyk, kaip pats sprendi šią problemą? Kaip tu kurtum nuo 0? Bėja aš tau labai dėkingas už tokį išsamų atsakymą :)

Redagavo DonatasL
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Surašyta į sql lietuvių kalba

 

 

Dėl anglų, tai pats savarankiškai minimaliai pasimokinu, ačiū už paskatinimą :) svetainę rašau nuo 0, pasiėmiau paprasta html template ir programinu :) infromaciją dabar rašau per phpmyadminą kadangi, dar nėra puslapije tokios funkcijos :) pabandžiau pakeisti cp1257 kodavimą visur, pasiketė kodavimo ženkliukas, bet vistiek taisiklingai neiškoduoja, o sakyk, kaip pats sprendi šią problemą? Kaip tu kurtum nuo 0? Bėja aš tau labai dėkingas už tokį išsamų atsakymą :)

 

function hexdump($string) {
   $ret = '';
   for ($i = 0; $i < strlen($string); $i++) {
       $char = $string[$i];
       $num = ord($char);
       if ($num > 31 && $num < 127) {
           $ret .= $char;
       }
       else { $ret .= bin2hex($char); }
       $ret .= ' ';
   }

   return $ret;
}

 

Turiu nuo panašios problemos kažkada seniai tokią funkciją pasidaręs hexdumpui – simbolius, kurie nėra standartiniai spausdinami ASCII simboliai, išspausdina kaip hex kodus, t.y. UTF-8 "ė" atrodytų "c4 97", o cp1257 - "eb". Tiesiog praleisk savo gaunamus duomenis iš mysql per ją ir matysim, kas ten pas tave :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...