Bug #62516 [Opn->Nab]: Impossible to display Unicode names
| From: | rasmus@php.net | Date: | Mon, 09 Jul 2012 13:52:33 +0000 |
| Subject: | Bug #62516 [Opn->Nab]: Impossible to display Unicode names | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-171826@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=62516&edit=1
ID: 62516
Updated by: rasmus@php.net
Reported by: pl at mygrworld dot com
Summary: Impossible to display Unicode names
-Status: Open
+Status: Not a bug
Type: Bug
Package: mbstring related
Operating System: Linux
PHP Version: 5.3.14
Block user comment: N
Private report: N
New Comment:
PHP doesn't do anything to the bytes that come out of MySQL here. It is a
straight binary-safe pass through so the problem can't be in PHP. I suspect you
haven't set the encoding on your MySQL table correctly. See
http://dev.mysql.com/doc/refman/5.5/en/charset-database.html
and in the user
comments at the bottom it shows you how to check the current encoding.
Previous Comments:
------------------------------------------------------------------------
[2012-07-09 13:06:49] pl at mygrworld dot com
Description:
------------
---
From manual page: http://www.php.net/function.print
---
A BOM mark is present at the top of the PHP script, the locale is set to UTF-8,
as is the HTML Content Type. In Apache, the charset is also set to utf8.
When Unicode characters are requested from MySQL, neither the echo or print
functions display the characters correctly within the HTML code. However, if the
characters are written directly in the HTML, they are displayed correctly.
Data is requested from the MySQL database using mysql_query and
mysql_fetch_assoc (or_array) into a variable (e.g. $var). A variable dump is
made of the data retrieved from the database, which shows the required data in
the format wanted.
However, using "<?php echo $var[0]; ?>", "<?php print $var[0]; ?>"
or "<?
=$var[0];?>" does not get the required result in the middle of the HTML code.
Test script:
---------------
<?php
setlocale(LC_ALL,"se_NO.utf8");
$query = "SELECT town, state FROM data_table WHERE town_id = 1";
$result=mysql_query($query, $sql_id);
$town=mysql_fetch_assoc($result));
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?=$town['town'];?><br>
<? echo $town['state'];?>
</body>
</html>
Expected result:
----------------
Borås
Västra Götaland
Actual result:
--------------
Bor�s
V�stra G�taland
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62516&edit=1