askalot Juniormester
24. november 2020 - 13:58 Der er 7 kommentarer og
1 løsning

Problemer med charset php/mysql

Hej

laver noget php som returnerer json og har et klassisk problem med charset, jeg får output som "title":"Hall\u00f8jP\u00e5Badehotellet"

ø bliver til \u00f8j
og å bliver til \u00e5

Hvad jeg har gjort:

Selve PHP filen er UT8 (har checket i notepad)

i PHP'en har jeg sat:
header('Content-type: application/json; charset=utf-8');

og mine tables er lavet med CHARSET=utf8

$sql = "CREATE TABLE IF NOT EXISTS `" . $tablename ."` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  etc...
  etc...
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";



Hvad mangler jeg?
askalot Juniormester
24. november 2020 - 14:01 #1
mysqli_character_set_name($conn) returnerer også "utf8"
Jens U. Juniormester
24. november 2020 - 14:18 #2
Det ligner korrekt encoding af JSON. Du kan eftervise det med følgende i browserens debug console:

JSON.parse('{"tekst":"Hall\u00f8j P\u00e5 Badehotellet"}');

som hos mig giver:

tekst: "Halløj På Badehotellet"
askalot Juniormester
24. november 2020 - 14:26 #3
Okay.. så..du siger at alt er som det skal være? :) Det lyder jo godt.
Så... json er altså ikke designet til at indeholde karakterer som øæå?
askalot Juniormester
24. november 2020 - 14:27 #4
men..JSON.parse er jo så javascript.. hvad hvis jeg vil konvertere det i PHP?
Jens U. Juniormester
24. november 2020 - 14:31 #5
I PHP spiller det også:

$a = json_decode('{"tekst":"Hall\u00f8j P\u00e5 Badehotellet"}');
print_r ($a);
stdClass Object
(
    [tekst] => Halløj På Badehotellet
)


..men overvej om du reelt har brug for JSON hvis alt sker i maven af PHP.
askalot Juniormester
24. november 2020 - 14:47 #6
Ok tak.Jo, der skal noget javascript ind over på et tidspunkt, så der er mening med galskaben ;)

Tak
michael_stim Ekspert
24. november 2020 - 16:12 #7
Men i stedet for: header('Content-type: application/json; charset=utf-8');

Så pröv: header('Content-Type: text/plain; charset=utf-8');

Det er jo ikke JSON der skal encodes, men PHP-tekst
michael_stim Ekspert
24. november 2020 - 16:14 #8
Og i din HTML-header: <meta charset="utf-8">
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
IBM fortsætter offensiv opkøbsstrategi: Køber en af de største og ældste multicloud-leverandører i USA
IBM opkøber cloud-virksomheden MSP Taos. Det er blot det seneste opkøb fra IBM i jagten på de store cloud-giganter og falder i tråd med IBM's offensive hybrid cloud-strategi.
Computerworld
Verdens tredjestørste smartphone-producent blacklistes af Trump-administrationen
Smartphoneproducenten Xiaomi er blandt de ni nytilkomne på Trump-administrationens sorte liste over kinesiske virksomheder, som amerikanerne ikke længere må investere i.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Job & Karriere
Microsoft i kæmpe dansk satsning - åbner tre store datacentre i Danmark
Microsoft lancerer kæmpe satsning fra hovedkvarteret i Lyngby. Selskabet åbner tre store bæredygtige datacentre på Sjælland.
White paper
Sådan kan du arbejde effektivt uanset tid, sted og type af enhed
Hvad nu hvis dit arbejde, din information, dine processer og teknologien bag ved, var organiseret på en måde så det passede til din organisation – alt sammen guidet af en intelligent udgave af det digitale arbejdsrum? Det er visionen bag Atea og Citrix´s samarbejde med digital workspace – en smartere og mere effektiv måde at arbejde på. I dette whitetpaper kan du derfor læse om, hvordan du kan skabe et mere effektivt og brugervenligt arbejdsrum uanset tid, sted og enhed. En løsning der på en gang er både enkel og som sætter brugeren i centrum.