Chinskie symbole z MySql do tabeli na stronie

0

Cześć jestem tu nowy. Zarejestrowałem się i pisze do was bo od 3 dni nie potrafię rozwiązać problemu mam taki tekst : w bazie danych kodowanie utf-16 .

Pełne teksty id nazwapl nazwaeng nazwachin Typ Typ2 GoracyPolmisek Iosc Cena Cenap Smak
Edytuj Edytuj Kopiuj Kopiuj Usuń Usuń 1 Zestaw z Kurczakiem z orzechami Lunch set of Chicken with peanuts 集鸡与核桃 1 17 0 1 23 13 2
i wszystko było by fajnie gdyby nie te chinskie znaczki - wyswietla je na stronie jako "???" - mam takich potraw ponad 130. Wydaje mi się że wszędzie w ustawieniach pozmieniałem na UTF-16 ale w informacjach po prawej stronie myphpadmin
Serwer bazy danych

Serwer: 127.0.0.1 via TCP/IP
Typ serwera: MySQL
Wersja serwera: 5.6.14 - MySQL Community Server (GPL)
Wersja protokołu: 10
Użytkownik: root@localhost
Kodowanie znaków serwera: UTF-8 Unicode (utf8)

niepokoi mnie ostatnia linijka - możliwe że to przez to ? jak to zmienic ? a może jeszcze czegoś nie zmieniłem?

DODAM ŻE POLSKIE ZNAKI WYSWIETLA RÓWNIEŻ JAKO "?"

0

w bazie danych kodowanie utf-16

Kodowanie znaków serwera: UTF-8 Unicode (utf8)

Hmm, ja tu widzę jednak rozbieżność.

A jakie kodowanie ma sama strona? Ustaw na UTF-8.

0

Oczywiscie ze ustawiałem na stronie. Utf-8 zmienialem na utf-16 nawet na GBK , GB2312 i big5 próbowałem. Problem leży według mnie po stronie przesyłu baza -> strona. nie wiem jak zmienic kodowanie znaków serwera

2

a po co Ci te utf-16? zmień wszystko na utf-8

0

wszędzie pozmienialem na utf8_unicode_ci, gdzie było samo utf16 na utf 8. Bazy danych varchar typ kodowania utf8_unicode_ci
Nie działa, na stronie dalej widnieją "????"
Żeby było fajniej to faktycznie teraz po eksporcie bazy danych do pliku .sql przenosi i polskie i chinskie znaczki - bazę danych dostałem z tabelką z chińskimi znaczkami w formacie gb2132 pozostałe były utf 8. I żeby nie stracic chińskich znaczków przerobiłem je na utf16 (uznalem ze chińskie piktogramy mogą potrzebować większą ilość pamięci).

Tak czy siak na stronie nadal widnieją "???????"

W zmiennych zostały jeszcze pozycje latin2 - na co mam zamienić ?

0

a w kodzie robisz SET NAMES 'utf-8' jako pierwsze zapytanie po podłączeniu się do bazy?

btw: możesz zrobić zrzut jednej tabelki (paru wierszy)?
możliwe, że już w bazie są źle zapisane, więc ich wyświetlenie nie będzie możliwe jak trzeba

0

proszę bardzo juz wrzucony

0

nie wiem czy zadziala ale wyglada to tak :
user image

0

boże :D

zrzut SQL, wyeksportowany plik, który mogę zaimportować do siebie, nie screenshot! :D

0

Czy tekst chiński nie z bazy ale wklejony na sztywno w treść strony wyświetla się prawidłowo?
A polskie litery?

W jaki sposób ustawiasz kodowanie strony? Wklej kod.

0

umieszczam załącznik z plikiem sql

kodowanie strony masz na screenie
dotego fragment kodu:

mysql_query("SET NAMES UTF8 SET CHARACTER SET UTF8 ");
$zapytanie = "SELECT * FROM dania";
$wynik = mysql_query($zapytanie);
echo "

Zestawy

";
echo "

";
echo "<table boder="1">";

while ( $row = mysql_fetch_row($wynik) ) {

0

na sztywno wrzucone :

echo "

Zestawy ąęłóćźż 设置辣子鸡

";</p>

wyswietla

Zestawy ąęłóćźż 设置辣子鸡

także jest ok. Zmienilem w meta character set z utf-8_unicode_ci na UTF-8.

Ale nadal z bazy pobiera same znaczki zapytania i polskich i chinskich znakow

user image

1

Chyba spieprzyłeś to SET NAMES.
Zaimportowałem do bazy Twój plik, stworzyłem kod:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<pre>
<?php
$oDb = mysql_connect('127.0.0.1', 'root', 'root');
mysql_select_db('test', $oDb);
mysql_query("SET NAMES 'utf8'");
$oResult = mysql_query("SELECT * FROM dania");
while ($aRow = mysql_fetch_assoc($oResult)) {
    var_dump($aRow);
    echo '<hr />';
}
?>
</pre>
</body>
</html>

Zwrotka:
user image

0

działa faktycznie utf8 trzeba było w ' ' umiescic i teraz wszystko smiga dzięki wielkie - 3 dni nad tym siedziałem - szukałem dziury w całym

0

przy okazji może macie jakiś pomysł jak zrobić aby po zliczeniu długości tekstu , i jeżeli powiedzmy tekst przkracza 15 znaków znalazło spację i ją zamieniło na <BR> - chodzi oto aby tekst w tabeli nie był długi w jednej linii tylko kończył się w kolejnej linii pod spodem

0

To ty ustawiasz szerokość strony na sztywno na 2480px.

Po prostu ustaw normalną szerokość kolumny/tabeli. Samo się zwinie.

0

słuchaj to będzie szło do druku jako format a4 300dpi czyli 2480px szerokości. za pomocą strlen() mogę sobie znaleźć taksty które będą przenoszone do następnej linii , ale chciałbym aby było to robione w miejscu spacji a nie srodku wyrazu

0

ziomek, jak kontener będzie miał określone: Ty masz szerokość 300px, i w niej będzie tekst - to ten tekst przełamie się właśnie na spacji, a nie w środku wyrazu.

dwa: skoro robisz dokument do druku, to dlaczego w ogóle używasz px? od czego są jednostki mm i inne?

0

Lunch set the chicken in batter and sweet and sour sauce with sesame seeds
Chinglish FTW!

1 użytkowników online, w tym zalogowanych: 0, gości: 1