这是我在CakePHP中的.ctp文件中的代码:
<div class="AccordionPanel">
<div class="AccordionPanelTab">জন্ম নিবন্ধন</div>
<div class="AccordionPanelContent">
<?php echo $html->link(__('থানা', true), '/ReportBirthRegistrationStations/'); ?>
<?php echo $html->link(__('অফিসার', true), '/ReportBirthRegistrationOfficers/'); ?>
</div>
</div>
所以我很清楚我要做的事情:我试图在我的CakePHP项目中的视图代码中编写Bangla字符,我想在我的视图页面中显示它们。
当我尝试加载视图页面时 - 显示奇怪的,不可读的字符而不是Bangla字符。
我包括了这个:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
文件顶部的UTF-8编码,但它仍无法正常工作。
我也在视图布局文件中包含了UTF-8编码,但仍面临问题。
如何在CakePHP中查看Bangla或任何其他外来字符? CakePHP对Bangla有什么支持吗?
我的IDE是Netbeans 8.0.1。
我的CakePHP版本是1.2.5,PHP版本是5.2 [由于在2008-09以来维护的一个非常古老的项目中工作]
修改 - 1:
我尝试添加以下内容 -
-J-Dfile.encoding=UTF-8
在我的Netbeans安装文件夹的etc文件夹中的netbeans.conf
文件中。通过这样做,我想确保我的文件以UTF-8编码保存。但我的问题仍未解决。
编辑 - 2:
忘了提一点。无论我试图显示什么,都与我的数据库值无关。这些只是标签,我只想在页面加载时在Bangla中查看这些标签。
答案 0 :(得分:4)
将此代码添加到〜/ app / config / core.php文件中:
Configure::write('App.encoding', 'UTF-8');
在您的网页部分添加:
<?php echo $html->charset(); ?>
答案 1 :(得分:4)
您的网络服务器可能没有为请求设置正确的内容类型。
您可以尝试在beforeRender();
中的AppController中手动设置它 header('Content-Type: text/html; charset=utf-8');
另请注意,在将标头发送到客户端之前向控制器中的输出流写入内容时,编码也将被破坏。 (经常在调试模式下发生)
答案 2 :(得分:1)
实际上,问题发生在default.ctp
文件夹中的app/views/layouts
文件中。
<meta http-equiv>
标签没有UTF-8编码,它是ISO-8859-1编码的。如下所示:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
这是Cake标准 - default.ctp
文件夹中的app/views/layouts
视图文件在整个应用程序中共享,它定义了所有视图页面的默认行为和共享属性。
由于这是一个非常古老的项目,当时的HTML版本是HTML 4,因此代码是以这种方式编写的。 HTML5支持UTF-8编码。请查看以下内容以获取更多详细信息:http://www.w3schools.com/tags/ref_charactersets.asp
我只需将其更改为UTF-8编码,然后就可以了。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
问题与Cake版本无关,也与PHP版本无关。相反,它完全是关于HTML版本和相应的代码造成了混乱。