Charset=utf8 not working in my PHP page

I got a problem with my character encoding. Whenever I load a page in the browser, It shows like this:
enter image description here

So I need to manually configure it by the browser. Thanks for your help.

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

sounds like you don’t serve your content as utf-8. do this by setting the correct header:

header('Content-type: text/html; charset=utf-8');

in addition to be really sure the browser understands, add a meta-tag:

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

note that, depending on where the text comes from, you might have to check some other things too (database-connection, source-file-encoding, …) – i’ve listed a lot of them in one of my answers to a similar question.

Solution 2

As stated by kraikkonen85 in this comment:

Besides setting mysql_set_charset and adding utf8 setting metadata
to html, another important but “unpredictable” reason is the encoding
type of your PHP editor when saving. For example, if you save the php
file other than encodings such as “unicode” or “ANSI“, as i
experienced, you may notice weird chars like squares, question marks

To make sure, try “save as” method to see explictly that your php file
is being saved as utf8.

it may be because your content might not utf-8 you can set utf-s by setting the header and meta

header('Content-type: text/html; charset=utf-8');

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

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply