21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
temistokles
Profil
mam taky problem:
vzdy ked do databazy ulozim diakritiku dostanem naspat len otazniky namiesto ščť......
netreba nieco nastavit v databaze (php5.sk)? ak sa to neda obist nejakym nastavenim nepozna niekto sposob akym previest znaky (diakriticke) na %a nieco. napriklad viem ze medzera je %20. no a to potrebujem na tie znaky s diakritikou.

vopred za pomoc dakujem
krteczek
Profil
měl bys tam mít k dispozici php myadmin, a v něm se dá nastavit kodová stránka. koukni se v nastavení učtu, do PHPmy asmin se dostaneš pomocí jmena a hesla které máš pro přístup k db
( aspon to všude, kde hostuji takhle funguje )
krteczek
FantomX1
Profil
No neviem ci ti velmi poradim ale znaky ktore zadavas do databazy pod urcitym kodovanim musis potom aj v tom istom kodovani zobrazovat, pretoze kazde pismeno je v skutocnosti len cislo ci uz v dvojkovej alebo inej sustave no a v jednom kodovani mas za pismeno a napriklad trepnem blbost cislo 54 a v druhom mas na cisle 54 pismeno s a tak ti namiesto a-cka vypise s-ko. To preto lebo cislu 54 alebo inak 54. bajtu je priradene ine pismeno (iny znak) v inom kodovani. A preto dobre skontroluj ci pouzivas rovnake kodovanie pri vkladani ale aj vyberani dat z databazy.
temistokles
Profil
a ake je kodova stranka Slovenska?

mam to supnut do kolonky porovnavanie?
Lasi
Profil *
Pred pár dňami som riešil ten istý problém. Tak Ti napíšem na čo som prišiel.
Nastavil som kódovú stránku v databáze na cp1250 a text som posielal vo windows-1250(z notepadu) a robilo mi to čo tebe (blbé otázniky). Tak som prestavil v databáze (mysql až sa bavíme o tej istej :)) kódovú stránku na iso-8859-2, stránka z ktorej som vkladal text bola tiež v iso kode a zobrazoval som to tiež v iso, hoc' text bol napísaný v notepad-e čiže vo windows-1250 a písalo mi to všetky znaky normálne. Dúfam že Ti to niečo pomôže, ale v každom prípade je to o tom istom ako píše FantomX1 len inač napísané.
temistokles
Profil
ale kde tu mam nastavit kodovu stranku? hladam a netusim...
mila
Profil
V php my adminovi je to hned na úvodní stránce.
Co jsem to tak pochopil, tak to vůbec není nastavení databáze, ale vlastně jen, v jakém kódování běží ten admin. Což ale svůj účel plní, neboť pak ve formulářích píšeš správným kódováním, ve správném kódování se to odešle php skriptu a ten to správně uloží.
Namříklad myadmin, kterého mám na loclhostu vůbec nepodporuje UTF-8, ale pokud mám napsanou sránku v UTF-8, tak se to v tomto kódování normálně ukládá.
Můžeš si zkusit na stránkách adminu kódování přehodit násilně - v prohlížeči.

>Lasi
Kopíroval jsi to z toho notepadu copy-paste, nebo posílal jako SQL příkaz ze souboru? Protože pokud to jen vložíš (ctrl-V), tak si myslim, že to bude v kódování, jaké je v prohlížeči..
Lasi
Profil *
>Mila
Nie posielal som to z formulára pomocou skriptu, asi máš pravdu, musím to vyskúšat, teraz som si uvedomil že keď mi to robilo otázniky nemal som v skripte html hlavičku a tým pádom ani nastavenú kodovú stránku a keď som ju pridával to som to už skúšal z iso. Tak to šlo takže som ďalej nešiel.

>temistokles
Máš nastavenú kodovú stránku v odosielacom skripte ?
Nastavenie kódovej stranky tabuľky možeš spraviť sql dotazom:

ALTER TABLE `meno tabuľky` CHARACTER SET latin2;
alebo ine ako UTF-8 , cp1250 .....
temistokles
Profil
skusal som napisat cp1250 - nepomohlo. na stranke mam kodovanie windows-1250. skusal som napisat aj utf aj cp1250 a stale mi vypadava Č a Ť. napise mi otazniky. aku kodovanie mam dat na stranku? a ako to zladit s databazou?
Lasi
Profil *
Kombinácia: administračná stránka (odtiaľ posielam text pomocou formulara)=>windows-1250,
databáza=>cp1250, stranka v ktorej sa text zobrazuje=>windows-1250 robí aj u mna otazniky (schválne som to teraz skušal) ale neprišiel som nato prečo.

Ak som nastavil kombináciu: administračná stránka=>iso-8859-2, databáza=>latin2, a samozrejme stranka v ktorej sa text zobrazuje na=>iso-8859-2, tak mi to beží aj s č ť.

Problém ktorý táto zmena obnáša je že aj zbytok stránky v ktorej sa text zobrazuje musí byť "prekódovaný" na iso, čo môže byť dosť pracné, ak ide o hotovú stránku.

Ja na zmenu kódovania používam taky skript ktorý som našiel na nete, ale už neviem kde tak by som ti ho mohol poslať na mail. Volá sa to ConvertCharset_v1.0 no treba k tomu spraviť vstupný formulár (je tam také "demo"). Ja ho mám spravený, ale je dosť núdzový (nedotiahnutý ale funkčný, trochu sa zaňho hanbím :))

Iste exitujú aj iné spôsoby ako prekódovať stránku až by si do toho šiel iste ti niekto poradí.

Posledná rada:
Môj skromný názor je že plytvanie časom to tam tlačiť vo win-1250. Mysql aj php vzniklo na unix platforme takže asi budú väčší kamaráti z normou ISO ako s tou z Redmond-u, ale nemusí to vôbec tak byť...
temistokles
Profil
takze mam dva framy: dolny a horny

dolny sluzi na posielanie, horny zobrazuje

kodova stranka dolneho je iso-8859-2, horneho tiez

databaza ma kodovu stranku latin2_general_ci


napisem +ľščťžýáíéúä§ô

zobrazi mi +?????ýáíéúä§ô


teda problematicke otazniky mi ostali.
a problem tiez :(
Lasi
Profil *
Zmazal som si cely odkaz nechce sa mi to znova písať :( tak v skratke:

latin2_general_ci je porovnávanie - collation nie kodovanie - character set.
Zadaj sql dotaz:

ALTER TABLE `meno tabulky` CHARACTER SET latin2 COLLATE latin2_czech_cs;

A ak to nepôjde tak som v koncoch aj ja.
temistokles
Profil
Takze mam tu riadny kamen: nepytajte sa ako som na to prisiel - pokus&omyl.... (XY-krat)


takze stranky mam v kodovej stranke cp1251 a databazu v stanke cp1250. Preco mi teraz makcene zobrazi sice netusim, ale radost mi to nekradne!!

Takze ak budete mat niekto podobny problem - tu je moje nanajvys podivne ale funkcne(!) riesenie.
temistokles
Profil
a preriesil som to este inac... urobil som skript, ktory znaky premeni na cisla


function makcene($str)

{
$cisla_znakov=array(190,232,157,158,242,228,239,188,138,200,141,142,19 3,248,216);
$znaky=array(318,269,357,382,328,228,271,317,352,268,356,381,193,345,3 44);
$i=-1;
foreach ($cisla_znakov as $znak)
{
$i++;
$str=str_replace(chr($znak), "&#".$znaky[$i].";", $str);
}
return $str;
}
temistokles
Profil
je to pre kodovanie cp1250
Toto téma je uzamčeno. Odpověď nelze zaslat.

0