PHP Enconding - 在 Portuguese-BR 中格式化 cedilla 无效
PHP Enconding - Formatting cedilla in Portuguese-BR is not working
我遇到了一个与巴西葡萄牙语中的字符集格式化词相关的问题,其中包含 cedilla。
当我将 setlocale
设置为 'portuguese-brazil' 并附有 utf-8
时,PHP 似乎不理解它。
如下图所示,我尝试将当前月份的英语转换为葡萄牙语:
如我们所见,上面的值应该向最终用户显示 Março(英文意思是 March)。
我尝试在葡萄牙语和此处浏览 Stack Overflow,但 none 这些问题和解决方案对我有用。
在我的 HTML 文件中,我的 meta
标签定义如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
它自己保存的文件也是UTF-8 w/o BOM
格式化的。
本月展示的片段代码:
<div id="ow-marketplace" class="col-xs-12 col-sm-12 col-md-12 table-responsive">
<?php
setlocale( LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'portuguese-brazilian' );
date_default_timezone_set( 'America/Sao_Paulo' );
$data = strftime( '%B/%y', strtotime('today'));
echo "<h4 class=\"page-header\">Vendas Atuais do mês de ". ucfirst($data) ."</h4>";
?>
<div class="box-content">
我不知道如何解决这个问题,但我认为字符集似乎没有按预期工作。
谁能帮我解决这个问题?
如果我需要post任何进一步的信息,请告诉我
最有可能的问题是您的语言环境。 PHP 将尝试按给定顺序设置语言环境,设置它能找到的第一个。如果 pt_BR
未在您的系统上使用 UTF-8,则您的结果将不会采用 UTF-8 编码。由于您尝试将 pt_BR.utf-8
作为第二选择,因此 PHP 可能更喜欢非 UTF-8 版本。
检查您安装的语言环境:
$ locale -a
对于Windows,看这里:
https://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx
(未经证实的信息,不知道有没有更Windows-y的方法)
首选 UTF-8 语言环境:
setlocale(LC_ALL, 'pt_BR.utf-8', 'pt_BR', 'portuguese-brazilian');
测试实际选择的语言环境:
echo setlocale(..);
我遇到了一个与巴西葡萄牙语中的字符集格式化词相关的问题,其中包含 cedilla。
当我将 setlocale
设置为 'portuguese-brazil' 并附有 utf-8
时,PHP 似乎不理解它。
如下图所示,我尝试将当前月份的英语转换为葡萄牙语:
如我们所见,上面的值应该向最终用户显示 Março(英文意思是 March)。 我尝试在葡萄牙语和此处浏览 Stack Overflow,但 none 这些问题和解决方案对我有用。
在我的 HTML 文件中,我的 meta
标签定义如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
它自己保存的文件也是UTF-8 w/o BOM
格式化的。
本月展示的片段代码:
<div id="ow-marketplace" class="col-xs-12 col-sm-12 col-md-12 table-responsive">
<?php
setlocale( LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'portuguese-brazilian' );
date_default_timezone_set( 'America/Sao_Paulo' );
$data = strftime( '%B/%y', strtotime('today'));
echo "<h4 class=\"page-header\">Vendas Atuais do mês de ". ucfirst($data) ."</h4>";
?>
<div class="box-content">
我不知道如何解决这个问题,但我认为字符集似乎没有按预期工作。
谁能帮我解决这个问题?
如果我需要post任何进一步的信息,请告诉我
最有可能的问题是您的语言环境。 PHP 将尝试按给定顺序设置语言环境,设置它能找到的第一个。如果 pt_BR
未在您的系统上使用 UTF-8,则您的结果将不会采用 UTF-8 编码。由于您尝试将 pt_BR.utf-8
作为第二选择,因此 PHP 可能更喜欢非 UTF-8 版本。
检查您安装的语言环境:
$ locale -a
对于Windows,看这里:
https://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx
(未经证实的信息,不知道有没有更Windows-y的方法)首选 UTF-8 语言环境:
setlocale(LC_ALL, 'pt_BR.utf-8', 'pt_BR', 'portuguese-brazilian');
测试实际选择的语言环境:
echo setlocale(..);