konto usunięte

Temat: znaki zapytania zamiast polskich a wszelkie kodowania...

witam

borykam się z pewnym problemem mianowicie komponent joomla1.5.22 - joomgallery1.5.6.3 (galeria zdjęć) kiedy tworzę w niej kategorie i nazywam nazwami zzwierające polskie znaki to na stronie jak i w bazie danych zapisują się one jako znaki zapytania.

dla przybliżenia problemu podam dane informacyjne dla systemu:

PHP uruchomione w: Linux ns3 2.6.24-7-pve #1 SMP PREEMPT
Wersja bazy danych: 5.0.91-community
Kodowanie połączenia MySQL: utf8_general_ci
Wersja PHP: 5.2.9
Serwer WWW: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.9
PHP działa na: apache2handler
Wersja Joomla!: Joomla! 1.5.22 Stable


dane dla MySQL'a

System porównań dla połączenia MySQL utf8_general_ci
Serwer: Localhost via UNIX socket
Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
Wersja klienta MySQL: 4.1.22

Zmienne i ustawienia serwera
Zmienna Wartość sesji / Wartość globalna
auto increment increment 1
auto increment offset 1
automatic sp privileges ON
back log 50
basedir /
binlog cache size 32 768
bulk insert buffer size 8 388 608
character set client utf8
(Wartość globalna) latin1
character set connection latin2
(Wartość globalna) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Wartość globalna) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection latin2_general_ci
(Wartość globalna) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
completion type 0
concurrent insert 1
connect timeout 6
datadir /var/lib/mysql/
....

w bazie danych jest tabela jos_joomgallery_catg zawierająca nazwy kategorii gdzie są zamiast polskich znaków sa znaki zapytania. Tabela ta ma utf8_general_ci system porownywania napisów.

Przy takich ustawieniach kiedy chcę zmienić ręcznie tzn w bazie danych w tabeli jos_joomgallery_catg w 1 kolumnie nazwy kategorii np. go??b na gołąb to otrzymuje zwrotkę

"Zmodyfikowanych rekordów: 0.
Warning: #1366 Incorrect string value: '\xC5\x82\xC4\x99bi...' for column 'name' at row 1"

Powiedzcie Panowie o co kaman, co zrobić mam by wyswietlały się poprawnie polskie znaki.Tomasz Z. edytował(a) ten post dnia 19.01.11 o godzinie 22:10
Marcin Fliszta

Marcin Fliszta Scrum Master

Temat: znaki zapytania zamiast polskich a wszelkie kodowania...

A jakie masz kodowanie znaków w tej tabeli? W konfiguracji MySQLa masz zmienne globalne, ale tabele mogą mieć inne ustawione. Pisałeś, że collation=utf8_general_ci, a czy charset=utf8?

konto usunięte

Temat: znaki zapytania zamiast polskich a wszelkie kodowania...

hm

popatrzyłem na innym hostingu jak są zmienne globalne poustawiane (tam gzie jest ok) i widze ze tu jest kaszana klient admina nie mozesie doprosic o zmiany nie odpisuje - co za zwalony hosting - trzeba go zmienic

pozdroTomasz Z. edytował(a) ten post dnia 20.01.11 o godzinie 20:09
Raphael Brick

Raphael Brick Vince in bono
malum...

Temat: znaki zapytania zamiast polskich a wszelkie kodowania...

Tomasz Z.:
hm

popatrzyłem na innym hostingu jak są zmienne globalne poustawiane (tam gzie jest ok) i widze ze tu jest kaszana klient admina nie mozesie doprosic o zmiany nie odpisuje - co za zwalony hosting - trzeba go zmienic

pozdroTomasz Z. edytował(a) ten post dnia 20.01.11 o godzinie 20:09

Ja robię to tak :
mysql_connect() or die("połączenie z bazą nie powiodło się");
mysql_select_db() or die(mysql_error());

mysql_query("SET NAMES 'utf8'");

I DOPIERO TERAZ WŁAŚCIWE ZAPYTANIE, TAK SAMO ZAPIS DO BAZY!

pozdrawiam

konto usunięte

Temat: znaki zapytania zamiast polskich a wszelkie kodowania...

Tomasz: Może kodowanie plików modułu jest na latin1?

1. Przy CREATE DATABASE ustaw "charset" na UTF8
2. W DDL CREATE TABLE powinieneś mieć wtedy UTF8, co może być problematyczne, gdy to polecenie ALTER TABLE zrobisz, gdyż da się ustawiać kodowanie na poziomie kolumny tabeli. Jak masz dane, to zerknij czy przypadkiem nie masz takiej sytuacji, że


CREATE TABLE FOO (
user_id INTEGER,
user_name VARCHAR(50) CHARSET LATIN1
).. CHARSET UTF8


3. Kodowanie pliku .php na UTF8
4. Tak jak Rafał wspomniał SET NAMES utf8, które pewnie cie nie do końca usatysfakcjonuje, bo nie jestem pewien czy ci da pożądany sposób porównywania znaków
5. Rekurencyjnie powtarzaj... aż ci się uda ;)

konto usunięte

Temat: znaki zapytania zamiast polskich a wszelkie kodowania...

hej. zmieniono hostingodawcę gdzie nie ma problemów.

pozxdro

Następna dyskusja:

Optymalizacja zapytania z G...




Wyślij zaproszenie do