【问题标题】:Browser is not printing hard coded persian characters in codeigniter-3浏览器未在 codeigniter-3 中打印硬编码的波斯字符
【发布时间】:2020-12-27 15:14:31
【问题描述】:

我正在尝试使用以下方式打印 URL:

$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") 。 "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

它打印英文 URL 很好,但波斯 URL 显示如下:

<link rel="canonical" href="https://www.example.com/8897-%D8%A7%DB%8C%D9%86%D9%B9%DB%8C%DA%A9-%D8%B1%D9%88%DB%8C%D9%86%D8%AC?lang=per"/>

虽然从数据库中选择的字段以波斯语打印如下:

<title>اینٹیک روینج</title>

但是当保存在 php 文件中(硬编码)变成 ??????保存后。

截图如下:

&lt;title&gt;اینٹیک روینج&lt;/title&gt; ------> 这是从数据库中选择的波斯文

&lt;meta property="og:title" content="??????????"&gt; ----->这是上面的波斯语脚本,直接保存在这个php文件中

&lt;link rel="canonical" href="https://www.example.com/7657-%D8%A7%DB%8C%D9%86%D9%B9%DB%8C%DA%A9-%D8%B1%D9%88%DB%8C%D9%86%D8%AC?lang=per"/&gt; -----> 这是我们从 URL 捕获的波斯文脚本

虽然将 URL 部分与存储的 slug 进行比较 urldecode(auto_link($url));工作正常,但我需要打印它们以显示规范 URL

  1. 我的服务器主机是 RHEL 7,我使用的是 php 5.6、php.ini 配置是:

    ; PHP 的默认字符集设置为 UTF-8。

    ; http://php.net/default-charset

    default_charset = "UTF-8"

  2. 更多信息 -> 我在 codeigniter 3 中有设置 config.php 为:

    $config['charset'] = 'UTF-8';
  3. 我在 html head 中声明如下:

  4. 我也在php中声明过

    header('Content-Type: text/html; charset="utf-8"');

【问题讨论】:

    标签: php utf-8 codeigniter-3 content-type farsi


    【解决方案1】:

    要打印您的网址:https://www.example.com/8897-اینٹیک-روینج?lang=per

    使用这个

    $url = urldecode((isset($_SERVER['HTTPS']) &amp;&amp; $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

    <link rel="canonical" href="<?=$url?>"/>
    

    或者你可以在一行中完成

    <link rel="canonical" href="<?=urldecode($url)?>"/>
    

    【讨论】:

    • 嗨 Murad,谢谢您,浏览器部分已解决,但保存在文件中的波斯字符(在 application/views/ 下)仍会转换为“??????”。
    • 我可以知道这些字符在数据库中还是在视图文件中,如果它在数据库中,请确保它在数据库中的波斯字符中!如果是在视图文件中可以给我看一个示例吗?
    • 字符在文件里,发现我用的编辑器是winscp内部编辑器,不支持utf-8,谢谢
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2019-05-24
    • 2015-07-11
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多