Side 1 af 1

sort_rombe_hvidt_?

Indlæg: man nov 11, 2019 17:08
af pm-c
PROBLEM: LAMP på min lokale pc returnerer kald til databasen med æøå erstattet af sort rombe med et hvidt spørgsmålstegn: �.
Hvad skal ændres i indstillingerne i LAMP?

Hej Forum!
Min hjemmeside blev flyttet fra TDC, da de nedlagde deres hosting, til dandomain.dk.
dandomains Database-server: Localhost via UNIX socket, servertype: Percona Server.
For at få mine database-udtræk vist på hjemmesiden, måtte jeg vælge PHP version 5.2. på dandommain. PHP-filerne er kodet proceduralt med anvendelse af mysgl.

Jeg vil gerne opdatere php-koden i min hjemmeside fra 5.2 til 7.2, men først afprøve det lokalt på min LAMP. Koden er her ændret til php7 med anvendese af mysqli osv., nogle filer proceduralt, én objektorienteret, lige meget hjælper det, æøå returmeres som �.
LAMP-vebservers PHP-version: 7.2.24-0ubuntu0.18.04.1.

mysql> SHOW SESSION VARIABLES LIKE 'character\_set\_%';
mysql> SHOW SESSION VARIABLES LIKE 'collation\_%';
giver samme resultat fra dandomain og lokal LAMP:
all_charset.png

Forskellene vises her:
Sidste linie viser dandomains indstilling. Ellers er de to ens.
struktur.png

SCHEMATA.png


Venlig hilsen
Peter

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36

Re: sort_rombe_hvidt_?

Indlæg: man nov 11, 2019 17:30
af Kim Ludvigsen
Hej Peter

Det har ikke noget med PHP at gøre. Det er indstillingerne for tegnsæt, der driller. Tegnsættet kan angives flere forskellige steder - i databasen, i serverens response-header og i sidens kildekode - og det skal svare til det tegnsæt, som teksten er gemt i. Hvis det ikke er ens alle steder, kan det drille.

Men det er vist endnu mere indviklet hos dig, for jeg kan se, at du har angivet forskellige tegnsæt i din database, du bruger både latin1 og UTF-8. Du kan ikke bare ændre tegnsættet for databasen, for hvis du ændrer den fra latin1 til UTF-8, får du problemer, hvis teksten er gemt som latin1.

Der kan desuden være forskel på, hvordan phpMyAdmin er indstillet. Når jeg ser mine tekster i phpMyAdmin, har jeg også �-fejlen, men det virker fint på hjemmesiderne. Jeg må indrømme, at jeg ikke har gidet prøve at rette det, fordi det ikke er et problem, medmindre jeg skal redigere i en tekst direkte i phpMyAdmin.

Re: sort_rombe_hvidt_?

Indlæg: søn nov 17, 2019 19:10
af pm-c
Hej Kim!

Så lykkedes det! jeg tilføjede følgende:

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_danish_ci

[mysql]
default-character-set = utf8mb4

til filen /etc/mysql/my.cnf

Resultat:
charset_efter_loesning.png

Returneringer fra databasen er nu uden æøå-fejl.
Løsningen hentet fra:
https://stackoverflow.com/questions/351 ... -in-my-cnf

Venlig hilsen
Peter

Re: sort_rombe_hvidt_?

Indlæg: man nov 18, 2019 5:30
af Kim Ludvigsen
Hej Peter

Dejligt! Og tak for tilbagemeldingen, som måske kan hjælpe andre med et lignende problem.