Display special characters in PHP - php

test.php - Using regular IDE(phpDesigner7)
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
echo "بوغاليا";
?>
</body>
</html>
output : ???????
test.html - Using regular IDE(phpDesigner7)
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
بوغاليا
</body>
</html>
output : ???????
test.html - Using Arabic Pad
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
بوغاليا
</body>
</html>
output : بوغاليا
hello.php - Using Arabic Pad
<?php
echo "Hello";
?>
output : Nothing
I am running a local WAMP(PHP 5.3). From this.
I have tried saving these pages with : charset=utf-8 as well on both the programs with no luck.
I know for fact that my IDE can't handle special characters and the other program that Can handle special characters can write workable HTML but if PHP files are written in it, It will not work. I know this is an encoding issue(in the IDE and while displaying the pages).
How does one go about displaying special characters with PHP code, I have large chunks of this arabic text that needs to be displayed.
Do you know how is this done?
Thanks! :)

Why are you setting your charset to iso-8859-1? That's Latin-1. You can't render non-Latin characters in Latin-1.
Try using UTF-8 instead.

Related

Encoding arabic using UTF8

Currently I created simple website using include system
header.php - contains first part of HTML page (Head, meta tags, JS codes ... etc )
page.php - contains simple php code
page content
My main problem with arabic language
I have to put
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
in page.php, footer.php between <head> tags otherwise the arabic will not support correctly.
This prevents page validation because of these tags.
Is there any method to avoid this problem ?
Thanks
// Send a raw HTTP header
header ('Content-Type: text/html; charset=UTF-8');
// Declare encoding META tag, it causes browser to load the UTF-8 charset
// before displaying the page.
echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
// Right to Left issue
echo '<body dir="rtl">';
Encode the arabic string into UTF-8 using a tool like this. (No need to change any settings - that link has the the correct settings you need).
Then use utf8_decode() to decode the string back.
Example:
<?php echo utf8_decode('your_encoded_string_goes_here'); ?>
Apart from all of the answers... Make sure your (HTML/PHP) files are saved with the right encoding utf-8
All you need is to put this
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
in a file that you include/include_once in your pages
EDIT. example:
header.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>my title in العربية</title>
</head>
<body>
mypage.php
<?php
include_once 'header.html';
?>
<p>
العربية
</p>
<?php
include 'foot.html';
?>
foot.html
<div>my footer</div>
</body>
</html>
1- Put this
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
2- You should also save the documents in UTF-8 not ANSI
Your headers should appear as the following:
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="utf-8">
</head>
<body>
Save your document as utf-8

Passing Japanese Character to PhP file

I make a simple PhP program
<?php
echo $_GET['ID'];
?>
Then I call
http://localhost/testGetID/?ID=%E6%AD%A4%E5%8E%9F%E7%90%86%E6%98%AF%E5%9C%A8
This is what I got:
此原ç†æ˜¯åœ¨
What should I do so I show up actual chinese characters? The chinese characters will be ID for my databases by the way.
add this line to your <head></head> section <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
use urldecode() or mb_convert_encoding() function
encode the ID with base64_encode() and then decode it with base64_decode()
Can you try this?
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Test page</title>
</head>
Your php code/chinese characters go here.
<body>
</body>
</html>

UTF-8 html5 webpage encoding

I'm trying to grasp UTF-8 and charset encoding in general, but it's tricky
This code:
<?php
header('Content-type: text/html; charset=utf-8');
?>
<!doctype html>
<html lang="da">
<head>
<title>UTF-8 test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div>
<p>UTF-8 æøå tést Señor!</p>
</div>
</body>
</html>
Outputs:
UTF-8 ��� t�st Se�or!
Same result on both local server and on multiple public sites (all Apache)
Do I need to change something in php? Or Apache? Or my text editor? (notepad++)
Your text editor isn't saving as UTF-8.
I think you should change the character encoding of your notepad++, you can change this under "Encoding" menu.
you can check your right corner of status bar for the encoding of your file.

cannot display chinese characters in php

Hi guys I have an issue to display chinese character in simple php file, I cannot figure out how to get it solved
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<?php
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-type" value="text/html; charset=UTF-8" />
</head>
<body>
电视机/電視機
</body>
</html>
I am think this can be the issue of apache or php.ini configuration. Any idea how to solve this issue?
Use <meta charset="utf-8"> before <title>
Some old style browers checks http header first, so you may set
<?php
header("Content-Type: text/html; charset=utf-8");
or change your web server config file
Example in Nginx:
add this lines after server {
charset utf-8;
charset_types
text/css
application/javascript
application/x-javascript
text/xml
text/plain;
Example in Apache:
AddDefaultCharset Off
or
AddDefaultCharset utf-8
Try using this:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
You write value instead of content
Cheers!
As you are using html5 you can use
<meta charset="utf-8">
and it will your fix issue.
If you are not using html5 then changing value to content will fix it
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
sorry did not get the question, but for thos who are getting the data from db try adding
mysql_query("SET NAMES 'utf8'"); in your db connection

PHP: Displaying Korean Text in a Webpage

How to display Korean Text in a webpage. i have been using these meta tags and headers
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="ko"/>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
ini_set('default_charset', 'UTF-8');
header('Content-Type: text/html;charset=utf-8');
But nothing works.. please help!!
NOTE: I tried every tag 1 at a time not all at once.
Use:
ini_set('default_charset', 'UTF-8');
header('Content-Type: text/html;charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
and make sure your editor is configured to save using UTF-8, and make sure that any other systems involved (e.g. databases) are configured to use utf-8.
Your example has two META tags - one is UTF-8 and the other is ISO-8859-1.

Categories