Sebastian Karasiewicz

Sebastian Karasiewicz Backend Developer

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

Witam,

Wiem że był podobny wątek ale dotyczył on Buildera 3, męczę się już drugi dzień bez większych rezultatów, otóż mam bazę danych której kodowanie jest utf8_unicode_ci, tabelka jest prosta id(int,10) header(varchar,30) content(text), korzystam ze skryptu który wygląda tak
	class ArtykulServices{

public function getArtykul(){
$connection = mysqli_connect("localhost", "root", "", "dotestowania", 3306) or die (mysqli_connect_error());
$sql = "SELECT * FROM artykul";
$result = mysqli_query($connection, $sql) or die("query faild: ".mysqli_error($connection));
$rows = array();
while($row = mysqli_fetch_object($result)){
$rows[] = $row;
}
return $rows;
}
}


binduje wynik z DataGrid i zamiast polskich znaków dostaje ???? tylko ó poprawnie się wyświetla, gdy testuje skrypt wyskakuje mi error w postaci

InvocationTargetException:There was an error while invoking the operation. Check your operation inputs or server code and try invoking the operation again.

Reason: An error occured while reading response sent by server. Try encoding the response suitably before sending it. e.g. If a database column contains UTF-8 characters then use utf8_encode() to encode its value before returning it from the operation.


zmieniłem skrypt jak zalecali w alercie

	class ArtykulServices{

public function getArtykul(){
$connection = mysqli_connect("localhost", "root", "", "dotestowania", 3306) or die (mysqli_connect_error());
$sql = "SELECT * FROM artykul";
$result = mysqli_query($connection, $sql) or die("query faild: ".mysqli_error($connection));
$rows = array();
while($row = mysqli_fetch_object($result)){
$row->id = utf8_encode($row->id);
$row->header = utf8_encode($row->header);
$row->content = utf8_encode($row->content);
$rows[] = $row;
}
return $rows;
}
}


co prawda error się nie pojawia ale polskie znaki dalej są pytajnikami, umieszczałem:

mysql_query ("SET NAMES 'utf8'");
mysql_query ("SET CHARACTER SET utf8");
mysql_query ("SET SESSION collation_connection ='utf8_unicode_ci'");

co powoduje wyświetlenie się blędu o dziwo jak zapisze plik klasy i plik gateway.php jako UTF8 dostaje podobny error jak po wpisaniu powyższego kodu tyle że zamiast polskich liter w błędzie pojawiają się jeszcze dziwniejsze znaki niż pytajnik,

Bardzo proszę o pomoc już nie wiem co mam zrobić,
Tomasz Poradowski

Tomasz Poradowski Specjalista od
wytwarzania
oprogramowania

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

Tak na szybko - sprawdź z jakim kodowaniem wraca odpowiedź z tego skryptu (nagłówek Content-Type i/lub znacznik meta "http-equiv").
Sebastian Karasiewicz

Sebastian Karasiewicz Backend Developer

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

z tego co się orientuję to
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

jest znacznikiem html, jestem nowy we flexie nie do końca wiem o co Ci chodzi,
plik html aplikacji zawiera
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
nigdzie indziej, ani w skrypcie ani w gateway, nie ma niczego takiego, ba nie ma nawet wzmianki o kodowaniu

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

Tomkowi chodziło o nagłówki protokołu HTTP.
Sebastian Karasiewicz

Sebastian Karasiewicz Backend Developer

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

A mogę prosić o małą podpowiedź ? Przeszukałem wszystkie pliki, łącznie z tymi w ZEND AMF nie mogę znaleźć tego o czym mówicie,
Tomasz Poradowski

Tomasz Poradowski Specjalista od
wytwarzania
oprogramowania

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

Np. wysyłając coś ze skryptu PHP działającego na serwerze X (np. Apache) wysyłany jest nagłówek "Content-Type", który dla wspomnianego Apache ustawiony jest domyślnie na "iso-8859-1". Można go też wysłać samemu z poziomu PHP, albo potem nadpisywać tagiem "meta" w już wysłanej stronie - ale który z nich zostanie użyty (rozpoznany) zależy de facto od klienta. Nie napisałeś na czym to wszystko działa ani w jakim formacie dostarcza dane, więc o konkretną pomoc może być trudniej :)

(edit) Zajrzałem na "Zend AMF" i wygląda na to, że to coś używa binarnej serializacji w utf8 (ktoś gdzieś pytał o inne możliwości, więc zakładam, że to jest w utf8) - może zatem problem błędów konwersji występuje podczas pobierania danych z bazy? (w zależności od wersji MySQL występuje kilka kombinacji począwszy od kodowania klienta, serwera, po bazę, tabelę i kolumnę z tego co pamiętam...)Tomasz Poradowski edytował(a) ten post dnia 22.06.10 o godzinie 17:21
Sebastian Karasiewicz

Sebastian Karasiewicz Backend Developer

Temat: Flash Builder 4, UTF 8 i pytajniki zamiast polskich liter

Stoi to na moim lokalnym serwerze Apache, z Flexem 3 wystarczyło dopisać do PHP

mysql_query("SET NAMES 'utf8'");


Na innym forum zadałem to samo pytanie i dostałem odpowiedź rozwiązaniem na moje pytanie jest krótki kawałek kodu
mysqli_set_charset($connection, "utf8");


i wszystko śmiga jak ta lala :)

Tak czy siak dziękuję za zainteresowanie się moim problemem pozdrawiam :)



Wyślij zaproszenie do