Autor | Zpráva | ||
---|---|---|---|
midin Profil * |
#1 · Zasláno: 5. 8. 2009, 16:06:34
Dobrý den,
z html formu přijímám přes get nějaká data, která posléze jdou do mysql_query do tabulky. Pro české znaky jsem zkoušel jsem tucty kombinací kódování a vždy se najde nějaký znak, který se posléze v phpMyAdminu zobrazí špatně, předkládám skript: <?php require("db_ic.php"); mb_language("uni"); mb_internal_encoding("UTF-8"); $name = $_GET['name']; $address = $_GET['address']; $lat = $_GET['lat']; $lng = $_GET['lng']; $type = $_GET['type']; $connection=mysql_connect ($host,$user,$pass); if (!$connection) { die('Not connected : ' . mysql_error()); } $db_selected = mysql_select_db($db, $connection); if (!$db_selected) { die ('Can\'t use db : ' . mysql_error()); } MySQL_Query("SET NAMES UTF8"); $query = sprintf("INSERT INTO markers " . " (id, name, address, lat, lng, type ) " . " VALUES (NULL, '%s', '%s', '%s', '%s', '%s');", mysql_real_escape_string($name), mysql_real_escape_string($address), mysql_real_escape_string($lat), mysql_real_escape_string($lng), mysql_real_escape_string($type)); $result = mysql_query($query); if (!$result) { die('Invalid query: ' . mysql_error()); } ?> Zápasil jsem i s poli escape/unescape problémových znaků, ale kýžený výsledek nebyl. Poradí někdo? Defaultní kódování na mysql je utf-8, html soubor je v utf-8 také. Díky za odpovědi, midin |
||
Zool Profil * |
#2 · Zasláno: 5. 8. 2009, 17:35:42
V databázi máte nastavené kodování utf8 je to tak, a soubor je také kodovaný v UTF8(nemyslím stránku jako hlavičku, ale celý soubor)?
pak bych tam zkusil přidat ještě tyto řádky, pod přihlášení: mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_results=utf8"); |
||
midin Profil * |
#3 · Zasláno: 5. 8. 2009, 18:19:14
ano, ano.
vyzkoušeno, nepomáhá :( ( při přidání vašich řádek se znaky s čárkami v phpmyadminu nezobrazují vůbec, znaky s háčky ve tvaru %u110D apod. rozdíl mezi háčky a čárkami je ve tvaru.. (háčky čtyřmístné, čárky dvojmístné (á = %E1)), nehraje to nějakou roli??). a není takto nastavené utf_general a já potřebuji utf_czech? midin |
||
Zool Profil * |
#4 · Zasláno: 5. 8. 2009, 22:45:52
Nee v tom by problém být neměl rozdíl je v tom, že jedno rozeznává velká a malá písmena a to utf8_general_ci je nerozeznává, doporučiji používat toto. A je to v té databázi uložene také bez háčků?
|
||
midin Profil * |
#5 · Zasláno: 6. 8. 2009, 00:16:36
"znaky s háčky ve tvaru %u110D" - není
|
||
Zool Profil * |
#6 · Zasláno: 6. 8. 2009, 09:45:38
Tak potom těžko říct, každopádně se ty znaky mění někde mezi databází a php, pokud máš tedy stránku v utf-8 i soubor v utf8 a databázi taky nastavenou na utf8, pak bych zkusil vyhodit řádky
mb_language("uni"); mb_internal_encoding("UTF-8"); Pak bych ještě zkusil udělat na stránce toto a vypsat to echo iconv ( "UTF-8" , "UTF-8" , $_GET['name'] ); Pokud to nějak zmutuje, tak bude chyba v kodování stránky. |
||
midin Profil * |
#7 · Zasláno: 6. 8. 2009, 10:47:35
solved - hodil jsem tam dvě pole escape/unescape ("%u110"->"á" atd...) a str_replace :)
|
||
Časová prodleva: 15 let
|
0