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.

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