php with special characters like ñ

header, json, php, special-characters, utf-8

Solution

for me

$test = "Nuñez";
echo $test;

shows Nuñez

You may try

$test = "Nuñez";
echo utf8_decode($test);

or

$test = utf8_encode("Nuñez");
echo utf8_decode($test);

Problem

At first I thought the problem was when I return echo json_encode($row) from an ajax call that results with ñ are changed to NULL. But after testing I found out that the problem exists way before that. In a sample php file with: ``` $test = "Nuñez" echo $test ``` the result is just Nu�ez I've searched around but none of the suggested solutions work. Like: ``` mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); mb_http_input('UTF-8'); mb_language('uni'); mb_regex_encoding('UTF-8'); ob_start('mb_output_handler'); ``` or `<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />`, or `header('content-type: text/html; charset: utf-8');`. And some more solutions that I've already forgotten, believe me I tried a lot. That's just the beginning of it, I'm hoping that won't be a problem with mysql since my database is in utf-8 so is my $mysqli charset. But I think I can't say the same for ajax json_encode. But nevermind, one problem at a time. Can anybody please help me. Thanks a lot! PROBLEM SOLVED I just had to set "Encode in UTF-8" in Notepad++, as it was in "Encode in ANSI" before.

Original source