Brak polskich znaków

0

Dzień Dobry,

mój problem polega na tym że mam bazę danych w MySQL która zawiera już bardzo dużo materiału więc wolę się skonsultować przed grzebaniem na żywca.
Co prawda zrobiłem backup.

Więc: pod PhpMyAdmin widzę że pola tekstowe mają w oryginale kodowanie: utf8mb4_unicode_ci
Sam WordPress wyświetla poprawnie tytuły i polskie znaki.
Problem pojawił się gdy dodałem tabelę z której chcę zaczytać tekst po polsku. Kolumny w mojej tabeli są utf8_polish_ci
Strona w PHP ma kodowanie UTF-8 (plik) i

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

używam mysqli

mysqli_query->set_charset("utf8");
$result = mysqli_query($conn,"SELECT ........

W bazie tekst ma polskie znaki. na podstronce krzaczki

Mogę wejść w PHPmyadmin w ustawieniach ogólnych bazy zmienić metodę porównywania napisów bo widzę że jest latin1_swedish_ci, ale boję się czy nie stracę polskich znaków w istniejących wpisach.

Pomożecie?

0

A czemu dałeś utf8_polish_ci, skoro miałeś wcześniej wszędzie utf8mb4_unicode_ci? Polskie znaki też będą się tam dobrze zapisywać/wyświetlać. Skąd pochodzą dane i w jaki sposób określasz ich źródłowy format?

0

Witam Mogę zmienić na utf8mb4_unicode_ci. Sytuacja była taka - koledze padł serwer ma Joomli (nie wnikam) , zrobiłem mu instalację na wordpress , potem przeniosłem na ovh (żeby mu znowu coś nie padło ) Stare wpisy pobrałem poprzez apke z githuba z webarchive, w c# pociąłem pliki tzn wyodrębniłem tytuł, kategorię, datę autora i treść i przygotowałem z automatu (w kodowaniu domyślnym UTF-8) nowe pliki php które otwierają się ok z polskimi znakami. VS zrobił mi od razu skrypt do bazy. Który wgrałem sobie do bazy w wordpresie (na tym hostingu jest opcja jednej bazy). Wchodzę na PHPmyadmin i widzę że wrzuciło tabelę , dane wyodrębnione w VS,znaki są ok.

Zrobiłem plik index w archiwum gdzie chce zrobić wybór artykułu sortowanie. Na razie zrobiłem tylko select * i dzielenie na strony artykułów bo pobiera mi z bazy krzaki zamiast polskich znaków. W samym pliku php znaki polskie wyświetlają się poprawnie np opis Tytuł itp

1

Możesz skopiować istniejącą tabelę do nowej tabeli, która ma metodę porównywania napisów ustawioną na utf8_polish_ci. Polecenie SQL:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table MODIFY COLUMN column_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_polish_ci;
INSERT INTO new_table SELECT * FROM old_table;

Utworzysz kopię istniejącej tabeli z nową metodą porównywania napisów, ale bez ryzyka utraty danych.

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