Skocz do zawartości

Przeniosłem strone razem z bazą i problem z lierkami


lolki

Rekomendowane odpowiedzi

_ Poszukaj na forum ten temat buł już wiele razy omawiany _

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

____ Może to Ci pomoże ___

związku ze zmianami kodowania baz prosimy o zastosowanie tych metod celem ustrzeżenia się przed usterkami na stronach Państwa klientów. Bazy od dziś będą kodowane systemem standardowym dla Polski czyli iso-latin2 (iso8859-2)

Bazy które miały ustawione kodowanie na latin1 (iso8859-1)

a znaki w bazie zakodowane były w latin2 (ustawienia niestandardowe

stosowane w starych bazach) powinny być przekodowane do latin2.

Być może nie każdy wie jak to zrobić, wystarczy więc w pliku w którym występuje połączenie do bazy zaraz po połączeniu do bazy (BD_CONN) wysłać następujące zapytanie SQL:

$db->sql_query("SET NAMES latin1");

które zmieni ustawienie domyślne połączeń serwera z latin2 na latin1.

Każdy użytkownik może w ramach swojego oprogramowania, dokonać samodzielnie zmian wszystkich parametrów serwera

bez względu na to jakie są ustawienia domyślne:

$db->sql_query("SET character_set_connection=latin1");

$db->sql_query("SET character_set_client=latin1");

$db->sql_query("SET character_set_results=latin1");

Sam również może zmienić kodowanie bazy na dowolne jakie mu pasuje.

Informujemy iż rozwiązanie gdzie baza kodowana jest w latin1 a znaki w niej wprowadzone są kodowane w latin2 jest

rozwiązaniem niepoprawnym gdyż polskie znaki są błędnie rozpoznawane przez bazę (np. w sytuacji kiedy wyświetlamy

wyniki w kolejności alfabetycznej) problemy z ich rozpoznaniem będą również w nowych wersjach phpMyAdmin który

obsługuje tylko standardowe systemy kodowania.

Dodam jeszcze że mając poprawne kodowanie bazy i znaków w latin2

w prosty sposób możemy zmienić kodowanie strony WWW na UTF-8

czyli standard międzynarodowy, wystarczy więc tylko ustawić przy

połączeniu do bazy system połączeń na utf8:

$db->sql_query("SET NAMES utf8");

i na stronie www zmienić charset na uft-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

w ten sposób mamy stronę zakodowaną w utf-8 bez konieczności

jakichkolwiek zmian w bazie.

Polecamy te rozwiązanie.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

____ Może to Ci pomoże ___

Być może nie każdy wie jak to zrobić, wystarczy więc w pliku w którym występuje połączenie do bazy zaraz po połączeniu do bazy (BD_CONN) wysłać następujące zapytanie SQL:

$db->sql_query("SET NAMES latin1");

które zmieni ustawienie domyślne połączeń serwera z latin2 na latin1.

No właśnie jak to zrobić bo nic nie rozumiem, połączenie do bazy, wysłać zapytanie, nierozumiem.

Mogę napisać tyle że przenosząc bazy i importując na nowy serwer wyskakiwał error więc ręcznie z wyedytowanej bazy usuwałem takie coś

ENGINE=MyISAM DEFAULT CHARSET=latin2

Lekka partyzantka ale zadziałało prawie dobrze bo brakuje niektórych polskich znaków.

Odnośnik do komentarza
Udostępnij na innych stronach

Dla mniejszych baz jest trochę okrężne, ale działajace rozwiązanie.

Nie importuj do phpmyadmin a otwórz wyeksportowany w edytorze plik sql (jakię editplus) Skopiuj Ctrl+C

i wklej w pole tekstowe (jakiekoliwek, które wykonuje zapytanie sql-owe w phpmyadmin np. to nad importem do bazy).

Odnośnik do komentarza
Udostępnij na innych stronach

Zrobiłem tak że do pustej nowej bazy w polu tekstowym wkleiłem "starą bazę" i wyskoczył taki komunikat

zapytanie SQL:

-- phpMyAdmin SQL Dump

-- version 2.6.4-pl2

-- https://www.phpmyadmin.net

--

-- Host: localhost

-- Generation Time: Apr 03, 2006 at 01:22 PM

-- Server version: 4.1.13

-- PHP Version: 4.3.11

--

-- Database: `baza_baza`

--

-- --------------------------------------------------------

--

-- Table structure for table `catalog_categories`

--

CREATE TABLE `catalog_categories` (

`id` int( 11 ) NOT NULL AUTO_INCREMENT ,

`name` varchar( 255 ) NOT NULL default '',

PRIMARY KEY ( `id` )

) ENGINE = MYISAM DEFAULT CHARSET = latin2 AUTO_INCREMENT =44

MySQL zwrócił komunikat: Dokumentacja

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin2 AUTO_INCREMENT=44' at line 23

Więc napewno mam problem z tym latine, i spróbowałem tak. Wróciłem do aktualnej bazy z którą mam problemy z polskimi znakami i dałem zapytanie

$db->sql_query("SET NAMES latin1");

Wyskoczyło takie coś

Wygląda na to, że w twoim zapytaniu SQL jest błąd. W znalezieniu przyczyny problemu może pomóc także - jeśli się pojawi - poniższy opis błędu serwera MySQL.

ERROR: Nieznany znak przestankowy @ 4

STR: ->

SQL: $db->sql_query("SET NAMES latin1")

zapytanie SQL:

$db->sql_query("SET NAMES latin1")

MySQL zwrócił komunikat: Dokumentacja

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '$db->sql_query("SET NAMES latin1")' at line 1

Co w takim przypadku zrobić??

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. Odkurzam temat ponieważ problemu nie udało mi się rozwiązać natomiast dowiedziałem się takiej rzeczy

Prosze przed uploadem bazy na nasz serwer ustawic tryb zgodnosci z mysql

4.0 Kodowanie na naszym serwerze to ISO-8859-2 (latin2)

Wiem że gdzieś dzwonią ale nie wiem w którym kościele, prosiłbym o odpowiedź jak ustawić zgodność i czy zrobić to podczas exportu ze starego serwera a jeśli tak to jak to zrobić, proszę o odpowiedź ponieważ zależy mi na czasie. pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Witam, ja mam podobny problem, tyle ze cały projket w utf8, przy wysyalaniu polskich liter oraz ich odczytywaniu poprzez www wszytsko jest okey, ale po wejściu do phpmyadmin są już tylko krzaki

pomogło ustawienie w configu, zaraz po połączeniu

wpisanie takiego czegoś...

$result_show = mysql_query("SET NAMES 'utf8'");

$result_show = mysql_query("SET CHARACTER SET 'utf8_polish_ci'");

niby to na siłe.. ale działa :)

pewnie podobnie musisz wklepać zamiast utf8 latin2, powinno zadziałać, daj nać co i jak :)

brak sygnatury

Odnośnik do komentarza
Udostępnij na innych stronach

U siebie ja to rzowiązałem w prostu sposób grzegzułka w ostateczności

Update tabela Set news_news = replace(news_news, 'ś', 'ś');

Update tabela Set news_news = replace(news_news, 'ą', 'ą');

Update tabela Set news_news = replace(news_news, 'ź', 'ź');

Update tabela Set news_news = replace(news_news, 'Ś', 'Ś');

Update tabela Set news_news = replace(news_news, 'ż', 'ż');

Update tabela Set news_news = replace(news_news, 'ł', 'ł');

Update tabela Set news_news = replace(news_news, 'ę', 'ę');

Update tabela Set news_news = replace(news_news, 'ś', 'ś');

Update tabela Set news_news = replace(news_news, 'Ż', 'Ż');

Update tabela Set news_news = replace(news_news, 'Ś', 'Ś');

Update tabela Set news_news = replace(news_news, 'Ć', 'Ć');

Update tabela Set news_news = replace(news_news, 'Ń', 'Ń');

Update tabela Set news_news = replace(news_news, 'Ą', 'Ą');

Update tabela Set news_news = replace(news_news, 'Ę', 'Ę');

Update tabela Set news_news = replace(news_news, 'Ź', 'Ź');

Oczywiście to tylko przykład można np zamienić np. UTF-8

ľ - ź

ĺ ł

ĺ„ - ń

ĺ„ -ń

ăł -ó

ĺ› - ś

ä™ -ę

Odnośnik do komentarza
Udostępnij na innych stronach

Witam ponownie. Dzięki za podopowiedzi ale najpierw muszę przed uploadem bazy na nasz serwer ustawic tryb zgodnosci z mysql

4.0 Kodowanie na naszym serwerze to ISO-8859-2 (latin2).

Proszę o pomoc jak to mam zrobić.

Załączam screena mojego phpmyadmin bo niewiem jak ustawić te opcje w exporcie, proszę o możliwie szybką odpowiedź bo kończy mi sie stary hosting.

beztytuu8rw1fc.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

hej, przy eksprocie raczje chyba nic takiego nie ustawisz... (specem nie jestem, nie mnie ktos poprawi jeżeli się myle)

to raczej przy imporcie musisz uważać co ładujesz bo może się okazac że tabele mają inne kodowanie niż ustawione w bazie...

sprawdź też czy w bazie do której robisz upload, wszytskie tryby językowe są poprawnie ustawione :(

hmm ... a jaki to serwer ??

brak sygnatury

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności