Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kodowanie znaków
one_eddie
post 9.09.2005, 12:11:29
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 23.05.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Przeszukalem forum, dokumentacje mysql. Sam probowalem cos wykombinowac.

Niestety nie udalo mi sie jak narazie pozbyc problemu kodowania znakow. Dane wprowadzam w kodowaniu iso-8859-2 (mysql-owe latin2).

Mam serwer MySQL 4.1.12a-nt + obsluguje baze na phpMyAdmin 2.6.4-rc1.

Nie moge zmusic phpMA do wyswietlania znakow w ISO, caly zas trzyma sie tego utf, jak mozna to zrobic?

jak widac na zalaczonym obrazku serwer mimo moich prob konfiguracji i zmiany zmiennych default-character-set oraz prob zmiany za pomoca zapytania Set variable=value; dalej trzyma sie kodowania utf.



co nalezy zrobic aby zmienic kodowanie phpMA oraz serwera na iso-8859-2?

// edit:
Udalo mi sie zmienic kodowanie w phpMA na iso-8859-2 ale kiedy zagladam do zrodla strony to dalej w meta-charser jest utf questionmark.gif pozatym kiedy dodaje dane zamiast update ... pole =vartosc pojawia sie update ... CONVERT( pole USING utf8 )=wartosc?

o co chodzi?

// edit:
Juz caly dzien walcze ze zrodlami phpMA (wer 2.6.4-rc1) znalazlem miejsce gdzie wciskany na sile jest uft-8. najgorsze ze zglupialem w momencie gdy po zakomentowaniu kodu i zapisaniu pliku problem nie znikl sadsmiley02.gif

oto kod ktory umiescilem w komentarzu (plik: database_interface.lib.php):
  1. <?php
  2. if (PMA_MYSQL_INT_VERSION >= 40100)
  3. {
  4.  
  5. // If $lang is defined and we are on MySQL >= 4.1.x,
  6. // we auto-switch the lang to its UTF-8 version (if it exists and user didn't force language)
  7. /*if (!empty($GLOBALS['lang']) && (substr($GLOBALS['lang'], -5) != 'utf-8') && !isset($GLOBALS['cfg']['Lang']))
  8. {
  9. $lang_utf_8_version = substr($GLOBALS['lang'], 0, strpos($GLOBALS['lang'], '-')) . '-utf-8';
  10. if (!empty($GLOBALS['available_languages'][$lang_utf_8_version])) 
  11.  {
  12. $GLOBALS['lang'] = $lang_utf_8_version;
  13. $GLOBALS['charset'] = $charset = 'utf-8';
  14. }
  15. }*/
  16.  
  17. // and we remove the non-UTF-8 choices to avoid confusion
  18.  /* if (!defined('PMA_REMOVED_NON_UTF_8'))
  19. {
  20. $tmp_available_languages = $GLOBALS['available_languages']; 
  21. $GLOBALS['available_languages'] = array();
  22. foreach ($tmp_available_languages AS $tmp_lang => $tmp_lang_data)
  23. {
  24. if (substr($tmp_lang, -5) == 'utf-8')
  25. {
  26. $GLOBALS['available_languages'][$tmp_lang] = $tmp_lang_data;
  27. }
  28. } // end foreach
  29. unset($tmp_lang, $tmp_lang_data, $tmp_available_languages);
  30. define('PMA_REMOVED_NON_UTF_8',1);
  31. }*/
  32.  
  33. /*$mysql_charset = $GLOBALS['mysql_charset_map'][$GLOBALS['charset']];
  34. if ($is_controluser || empty($collation_connection) || (strpos($collation_connection, '_') ? substr($collation_connection, 0, strpos($collation_connection, '_')) : $collation_connection) == $mysql_charset) {
  35. PMA_DBI_query('SET NAMES ' . $mysql_charset . ';', $link, PMA_DBI_QUERY_STORE);
  36. } else {
  37. PMA_DBI_query('SET CHARACTER SET ' . $mysql_charset . ';', $link, PMA_DBI_QUERY_STORE);
  38. }
  39. if (!empty($collation_connection)) {
  40. PMA_DBI_query('SET collation_connection = '' . $collation_connection . '';', $link, PMA_DBI_QUERY_STORE);
  41. }
  42. if (!$is_controluser) {
  43. $collation_connection = PMA_DBI_get_variable('collation_connection',  PMA_DBI_GETVAR_SESSION, $link);
  44. $charset_connection  = PMA_DBI_get_variable('character_set_connection', PMA_DBI_GETVAR_SESSION, $link);
  45. }
  46.  
  47. // Add some field types to the list
  48. // (we pass twice here; feel free to code something better :)
  49. if (!defined('PMA_ADDED_FIELD_TYPES')) {
  50. $GLOBALS['cfg']['ColumnTypes'][] = 'BINARY';
  51. $GLOBALS['cfg']['ColumnTypes'][] = 'VARBINARY';
  52. define('PMA_ADDED_FIELD_TYPES',1);
  53. }*/
  54.  
  55. } else {
  56. require_once('./libraries/charset_conversion.lib.php');
  57. }
  58. ?>


Czy ktos mogl by mi powiedziec dlaczego dalej ustawiany jest charset na utf i w ktorym miejscu sie to odbywa? Przeszukalem caly kod i nigdzie nie znalazlem zmiany zmiennej $charset = 'utf-8' (pozatymi ktore pokazalem). uzywalem regexa do wyszukiwania (\&charset.*\'utf-8\')

Ten post edytował one_eddie 9.09.2005, 15:36:06


--------------------
Potrzebujesz oprogramowania dla firmy lub do użytku prywatnego? Zajrzyj na http://www.virgotech.pl
Sklep z gotowymi programami, grami oraz kodami źródłowymi. Zajrzyj na http://www.sklep.virgotech.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
FanFataL
post 9.09.2005, 22:49:48
Post #2





Grupa: Przyjaciele php.pl
Postów: 13
Pomógł: 0
Dołączył: 6.09.2005
Skąd: Kraków / Katowice / Bydgoszcz

Ostrzeżenie: (0%)
-----


Po nawiązaniu połączenia z bazą wyslij takie zapytanie:
  1. SET NAMES latin2

Powinno przynieść oczekiwany skutek

Pozdrawiam winksmiley.jpg
...


--------------------
The people who are trying to make this world worse are not taking a day off. How can I? - Light up the darkness
Go to the top of the page
+Quote Post
one_eddie
post 9.09.2005, 23:11:26
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 23.05.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Cytat(FanFataL @ 2005-09-09 23:49:48)
Po nawiązaniu połączenia z bazą wyslij takie zapytanie:
  1. SET NAMES latin2

Powinno przynieść oczekiwany skutek

Pozdrawiam winksmiley.jpg
...

to co podales + set character set latin2; to tylko sposob na zmiane wartosci zmiennych mysql. Zreszta zdazylem juz do tego dojsc. Nadal pozostaje problem usuniecia utf-a z phpMA?


--------------------
Potrzebujesz oprogramowania dla firmy lub do użytku prywatnego? Zajrzyj na http://www.virgotech.pl
Sklep z gotowymi programami, grami oraz kodami źródłowymi. Zajrzyj na http://www.sklep.virgotech.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:40