- sj blogja
- A hozzászóláshoz be kell jelentkezni
- 1676 megtekintés
Hozzászólások
Dump, majd az sql fájlon iconv, utána szerkeszteni az sql fájlt, esetleg.
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
na ja, de az sql resze (sem tartalom, sem a tablaszerkezet) nem az en kezemben van.
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
Akkor marad a megjelenítéskori átkódolás. Ha PHP, akkor iconv ott is.
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
A PHP-hez csak hozzáférsz. Próbálj rá hátha tudsz azzal a jelszóval egy új adatbázist létrehozni a PHP segítségével.
$sql = "CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_hungarian_ci;";
Ha van hozzá jogod akkor mehet a dump is ugyanígy.
- A hozzászóláshoz be kell jelentkezni
> hogy lehetne ezt pl. iso-8859-2-be vagy utf-8-ba atkoldoni php 4.x-ben. Valakinek otlet?
- A hozzászóláshoz be kell jelentkezni
Ez jo. Csak eppen az iconv("Paradox Hun 852", "iso-8859-2", $what);
hibat dob, ill. elhasal a php script, mondvan illegalis karakterek vannak a $what-ban....
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
> az iconv("Paradox Hun 852", "iso-8859-2", $what); hibat dob
"Paradox Hun 852" helyett "CP852" ?
- A hozzászóláshoz be kell jelentkezni
it works! Halam jeleul matol 1 honapig mesternek hivlak. A dolognak egy apro szepseghibaja van, hogy azon a vindozos **son nincs iconv tamogatas. Megprobalok alkudni az uzemeltetovel...
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
> Halam jeleul matol 1 honapig mesternek hivlak.
Ez jelentős túlzás lenne, mivel az eddigi PHP életművem nem haladja meg a 100 sort. Vedd úgy, hogy olvasói hála a könyvedért cserébe ... :-)
> hogy azon a vindozos **son nincs iconv tamogatas.
http://us.php.net/manual/en/install.windows.extensions.php
http://pecl2.php.net/downloads/php-windows-builds/php-libs/
- A hozzászóláshoz be kell jelentkezni
Vedd úgy, hogy olvasói hála a könyvedért cserébe ... :-)
Ohhh, na most jol megsimogattuk egymas kobakjat... :-)
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
"A dolognak egy apro szepseghibaja van, hogy azon a vindozos **son nincs iconv tamogatas. "
Nem akarlak elkeseríteni, de a "Vindozos fosomon" minden további nélkül működik.
PHP 5.2.9-2, Windows XP.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
> PHP 5.2.9-2, Windows XP.
A kérdés PHP 4.x -re vonatkozott.
- A hozzászóláshoz be kell jelentkezni
:-) Gondolom, a phpinfo() kimeneteben meg is jelenik nalad. De ezen a vason - 4.x alatt - nincs ott...
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
Akkor írnod kell egy pár soros függvényt, ami azt a 10-20 ékezetes karaktert átkonvertálja.
- A hozzászóláshoz be kell jelentkezni
azzal nem is volt semmi gond, hacsak nem az, hogy vindozen az ord() fuggveny tobb kulonbozo ekezetes karakterre ugyanazt az erteket adta vissza. Linuxon ugyanez ugyanigy teljesen jol mukodott....
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
De miért az ord()-dal akarod ezt megtudni? A CP852 kódkiosztása ismert.
á -> á
A0 -> C3 A1
é -> é
82 -> C3 A9
stb.
- A hozzászóláshoz be kell jelentkezni
ok. ha van egy stringed, hogyan tudod meg az egyes karakterek ascii kodjat (A0, 82, ...)?
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
> hogyan tudod meg az egyes karakterek ascii kodjat (A0, 82, ...)?
Hexaeditor vagy normális szövegszerkesztő program kiírja. De megtalálhatók az egyes kódtáblák is:
http://www.ascii-codes.net/cp852.html
http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP852.TXT
- A hozzászóláshoz be kell jelentkezni
Nem ez a gond (bar nem jo a hex. editor, mert van egy valtozo tartalom sql-ben, es abbol kell dolgozni, tehat a hex. editor jo ma, de ha holnap valtozik a tabla, akkor maceras ujra elovenni), hanem hogy amikor az ord()-dal megnezem a karakter kodjat, akkor nem tudok megkulonboztetni tobb ekezetes karaktert, ld. fentebb.
Ezert kerdeztem, van-e mod mas modon kideriteni egy karakter ascii kodjat. Ami furcsa, hogy Linux-on el is keszult a karakteratkodolo 'tabla', es korrekt modon mukodik is. Ugyanazt a fuggvenyt decode_paradox_shit.._852() atpakolva a vindoze php 4.x gepre, nem mukodik megfeleloen, ld. detto fentebb.
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
> amikor az ord()-dal megnezem a karakter kodjat, akkor nem tudok megkulonboztetni tobb ekezetes karaktert, ld. fentebb.
Nincs win a közelemben, nem tudom megnézni miért lehet ez. Ötletem azért van, szedd szét a szöveget unpack()-al.
Pld: $codes = unpack( "C*", "abcd" ); var_dump( $codes );
- A hozzászóláshoz be kell jelentkezni
ugyanazt adja vissza, mint amikor ord()-dal lekerdezem az ascii erteket karakterenkent....
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
> ugyanazt adja vissza, mint amikor ord()-dal lekerdezem
Pár példát írhatnál, a mysql-ben ugyanúgy letárolt "abcáéőű" szövegből mit készít az unpack + var_dump (linux alatt, windows alatt)?
- A hozzászóláshoz be kell jelentkezni
vindozen (php 4.4.x nincs benne iconv):
szo1: 'Köretek'
array(7) { [1]=> int(75) [2]=> int(63) [3]=> int(114) [4]=> int(101) [5]=> int(116) [6]=> int(101) [7]=> int(107) }
K*75 � ?*63 � r*114 � e*101 � t*116 � e*101 � k*107 � K?retek
szo2: 'Készételek'
array(10) { [1]=> int(75) [2]=> int(63) [3]=> int(115) [4]=> int(122) [5]=> int(63) [6]=> int(116) [7]=> int(101) [8]=> int(108) [9]=> int(101) [10]=> int(107) }
K*75 � ?*63 � s*115 � z*122 � ?*63 � t*116 � e*101 � l*108 � e*101 � k*107 � K?sz?telek
Jol lathato, hogy az 'ö' és az 'é' eseteben ugyanazt az ascii kodot adja vissza.
******************
Linuxon (php 5.x van benne iconv tamogatas):
array(7) { [1]=> int(75) [2]=> int(148) [3]=> int(114) [4]=> int(101) [5]=> int(116) [6]=> int(101) [7]=> int(107) }
Köretek
array(10) { [1]=> int(75) [2]=> int(130) [3]=> int(115) [4]=> int(122) [5]=> int(130) [6]=> int(116) [7]=> int(101) [8]=> int(108) [9]=> int(101) [10]=> int(107) }
Készételek
Itt mindjart mas a leanyzo fekvese. Az 'ö' kodja 148, mig az 'é' kodja 130.
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
> ugyanazt az ascii kodot adja vissza.
A kérdőjel szerintem arra utal, hogy a kliens (php) vagy a szerver (mysql) gépen nincs meg egy kód konverziós tábla. Ezek szerint minden >128 kódú bájt helyére '?' kerülne.
Ahogy nézem (http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html) le lehet tiltani, hogy a mysql kód konverzióval próbálkozzon:
If you do not want the server to perform any conversion of result sets or error messages, set character_set_results to NULL or binary:
SET character_set_results = NULL;
Ettől változhat a helyzet, megkülönböztethetőkké válhatnak az ékezetes betűk. Vagy nem. Egy próbát lehet hogy megér.
- A hozzászóláshoz be kell jelentkezni
Ehh, vegul sikerult. Benn maradt egy 'SET character...' az elejen. Kossz mindenkinek. Mivel iconv nem jatszik, ezert megcsinaltam a kodkonverzios tablamat. Ha kesobb most nem szereplo betu is lesz benne, akkor bebuktak...
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
Bocs, ez valahogy lekerülte a figyelmem. Tessék updatelni, 4.x-t meg elfelejteni.
Egyébként az nem megoldás, hogy MySQL-ben konvertálod?
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Az en szempontombol ez egy webhosting, nem vagyok abban a helyzetben, hogy megszabjam az upgrade-et...
Ha megmondod, hogy konvertaljam, akkor megprobalom mysql-ben elvegezni. Azonban ld. lentebb az utf-8-ra allas nem sikerult...
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni
Ha nem férsz hozzá az adatbázishoz, akkor megpróbálhatod így:
mysql_query("SET NAMES 'utf-8'");
mysql_query('SET CHARACTER SET utf8');
Ezt minden oldal elején a kapcsolat felépítése után küld el.
Elég rég foglalkoztam mélyebben PHP-val ,de úgy rémlik ez segít.
- A hozzászóláshoz be kell jelentkezni
probaltam ezt is, de nem valtozott az eredmeny.
SPAMtelenul - POP3 spamszuro szolgaltatas
- A hozzászóláshoz be kell jelentkezni