bobsters Posted January 26, 2012 Report Share Posted January 26, 2012 Ir tāda lieta - no datubāzes izvelkot datus (ar mīkstinājumiem) viņi netiek pareizi uzrādīti! Ja noņem pašas lapas kodējumu - <meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8"/> vai header('Content-type:text/html; charset=UTF-8'); tad lapā jau ierakstīto informāciju rāda pareizi latviešu kodējumā! bet no datu bāzes izvilktos nepareizi Kad ieslēdz header(); tad rāda pareizi izvadīto informāciju no datubāzes bet nepareizi burtus pašā lapā. Kur ir problēma. Datubāzē ir uzstādīts SET names UTF8; Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 26, 2012 Report Share Posted January 26, 2012 (edited) Paslēgā kodējumus pašā brauzerī. Iespējams, ka vienā no gadijumiem, teksts nemaz nav UTF-8 . Edited January 26, 2012 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
bobsters Posted January 26, 2012 Author Report Share Posted January 26, 2012 (edited) + vēl uzpeldēja viena problēma! kad pievieno tekstu ar garumzimem datubāzei caur php skriptu izmet erroru Incorrect string value: '\x81' for column 'title' at row 1 bet kad pievieno bez garumzimem tad viss kartiba! P.s. atradu kļūdu! Kad saglabāju failu nebiju ievērojis ka enkodējums bija windows-127! tāpēc arī bija tā nesakritība. Edited January 26, 2012 by bobsters Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 26, 2012 Report Share Posted January 26, 2012 P.s. atradu kļūdu! Kad saglabāju failu nebiju ievērojis ka enkodējums bija windows-127! tāpēc arī bija tā nesakritība. Ja būtu darījis kā ieteicu, šo būtu atradis zibenīgi... Quote Link to comment Share on other sites More sharing options...
bobsters Posted January 26, 2012 Author Report Share Posted January 26, 2012 Izvadot $replace ir ascii pārbaudīju to ar mb_detect_encoding() formātā! Mēģināju ar mb_convert_encoding() funkciju, bet viņš atmet to simbolu kurš tiek pārvērsts no ASCII uz UTF-8 function fixlink($title){ $characters=array("ā","č","ē","ģ","ī","ķ","ļ","ņ","š","ū","ž"," "); $replace=array("a","c","e","g","i","k","l","n","s","u","z",""); return str_replace($characters2,$replace,strtolower($title)); } Quote Link to comment Share on other sites More sharing options...
vertex Posted January 26, 2012 Report Share Posted January 26, 2012 Izvadot $replace ir ascii pārbaudīju to ar mb_detect_encoding() formātā! Mēģināju ar mb_convert_encoding() funkciju, bet viņš atmet to simbolu kurš tiek pārvērsts no ASCII uz UTF-8 function fixlink($title){ $characters=array("ā","č","ē","ģ","ī","ķ","ļ","ņ","š","ū","ž"," "); $replace=array("a","c","e","g","i","k","l","n","s","u","z",""); return str_replace($characters2,$replace,strtolower($title)); } Bet kādēļ tas ir jāmoka ar dažādām funkcijām utml. ja to var panākt izveidojot kārtīgi un pareizi saglabājot visu uz UTF-8? Tu tiešām zini ka visu izmēģināji, t.i. arī saglabāšanu un DB veida maiņu(charset)? Quote Link to comment Share on other sites More sharing options...
bobsters Posted January 26, 2012 Author Report Share Posted January 26, 2012 Viss man strādā kā vajag tagad! vienīgais kas strādā nepareizi ir šī funkcija! No datubāzes dati izvilkti ar pareizo enkodējumu! Lapas saturs viss ir UTF-8 enkodējumā. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 26, 2012 Report Share Posted January 26, 2012 Taisi jaunu topiku, ja tev ir jauna problēma! Quote Link to comment Share on other sites More sharing options...
briedis Posted January 26, 2012 Report Share Posted January 26, 2012 Kā šis ir jāsaprot? Datubāzē ir uzstādīts SET names UTF8; Ne jau datubāzē tas ir jāuztstāda, bet uzreiz pēc mysql_connect() ir jābūt mysql_query("SET NAMES UTF8"); Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.