Not*_*Jay 9 php mysql date strftime special-characters
我得到了一个可爱的 盒子,应该显示西班牙语字符.(即:ñ,á等).我已经确定我的meta http-equiv设置为utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
我还确保页面标题也设置为utf-8:
header('Content-type: text/html; charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我的代码的开始阶段:
<?php
setlocale(LC_ALL, 'es_MX');
$datetime = strtotime($event['datetime']);
$date = date("M j, Y", $datetime);
$day = strftime("%A", $datetime);
$time = date("g:i", $datetime);
?>
<a href="/<?= $event['request'] ?>.html"><?= $day ?> <?= $time ?></a>
Run Code Online (Sandbox Code Playgroud)
上面的代码在where语句中.我已经读过在数据库中切换排序也可能是一个因素,但我已经将它设置为UTF-8 General ci.另外,该列中唯一的东西是DateTime,无论如何都是数字,无论如何都无法进行整理.
结果:s bado8:00
一如既往地非常感谢任何帮助.
在PHP/MySQL/UTF-8中要考虑的事情
HTML页面Content-Type应设置为UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
PHP应发送一个标头,通知浏览器期望UTF-8
header('Content-Type: text/html; charset=utf-8' );
PHP-MySQL连接应设置为UTF-8
mysqli_query("SET CHARACTER_SET_CLIENT='utf8'",$conn);
mysqli_query("SET CHARACTER_SET_RESULTS='utf8'",$conn);
mysqli_query("SET CHARACTER_SET_CONNECTION='utf8'",$conn);
PHP ini有default_charset设置,如果你没有访问权限,它应该是utf-8 ini_set('default_charset', 'utf-8');
小智 5
我已经遇到这个问题很多年了,我找不到任何逻辑,我已经尝试了上面的所有解决方案.
一种解决方案是为所有文本制作html代码.这是我在其他所有方法都失败时使用的功能.
function span_accent($wordz)
{
$wordz = str_replace( "Á","Á",$wordz);
$wordz = str_replace( "É","É",$wordz);
$wordz = str_replace( "Í","Í",$wordz);
$wordz = str_replace( "Ó","Ó",$wordz);
$wordz = str_replace( "Ú","Ú",$wordz);
$wordz = str_replace( "Ñ","Ñ",$wordz);
$wordz = str_replace( "Ü","Ü",$wordz);
$wordz = str_replace( "á","á",$wordz);
$wordz = str_replace( "é","é",$wordz);
$wordz = str_replace( "í","í",$wordz);
$wordz = str_replace( "ó","ó",$wordz);
$wordz = str_replace( "ú","ú",$wordz);
$wordz = str_replace( "ñ","ñ",$wordz);
$wordz = str_replace( "ü","ü",$wordz);
$wordz = str_replace( "¿","¿",$wordz);
$wordz = str_replace( "¡","¡",$wordz);
$wordz = str_replace( "€","€",$wordz);
$wordz = str_replace( "«","«",$wordz);
$wordz = str_replace( "»","»",$wordz);
$wordz = str_replace( "‹","‹",$wordz);
$wordz = str_replace( "›","›",$wordz);
return $wordz;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
请检查您的文件编码。它必须是 UTF-8 或 UTF-8 without BOM。
更改文件编码。使用Notepad++(您也可以使用其他编辑器来更改文件编码)。在菜单栏中 > 选择“编码”> 选择任何 UTF-8 或不带 BOM 的 UTF-8。
UTF-8 和 UTF-8 without BOM 的区别请参见链接。 UTF-8 和无 BOM 的 UTF-8 有什么区别?
希望它能有所帮助。:)