更改托管服务器后,乌尔都语单词无法正确显示

Posted

技术标签:

【中文标题】更改托管服务器后,乌尔都语单词无法正确显示【英文标题】:Words of Urdu Language are not displaying properly after changing hosting server 【发布时间】:2021-12-10 20:37:24 【问题描述】:

我以前使用 Namecheap 托管服务器来运行我的网站 (https://www.bilawalcoachingcenter.com),现在转移到 Site Ground。问题是存储在数据库中的乌尔都语单词无法正确显示。它向我展示了编码,而不是文字。

这是我的 html 页面的设置:

<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

这就是我通过 PDO 连接的方式:

$this->_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'), Config::get('mysql/username'), Config::get('mysql/password'));

Site Ground 的服务器连接排序规则为 utf8mb4_unicode_ci(与 Name Cheap 相同)

请帮我解决这个问题。

测试页面:https://www.bilawalcoachingcenter.com/vocabulary.php

【问题讨论】:

很难说有什么问题。我还要说“向您展示编码”听起来不像是正确的短语。一切都是“编码”的。当你第一次将它插入 MySQL 时,它可能已经被错误地存储了。 这里接受的答案有更多背景:***.com/questions/279170/utf-8-all-the-way-through 非常感谢您向我展示可能的解决方案/事情。 这很奇怪,因为两台服务器上的一切似乎都相似。然后突然知道新服务器上表列的编码不是utf8。这对我来说很奇怪,因为我刚刚从以前的服务器导入了数据库。不知道怎么变的。我苦苦挣扎了一个星期才解决它,当我发现这个时,我正要毁掉我的笔记本电脑!!! 那么你的问题解决了吗?如果是,那真是个好消息! 【参考方案1】:

已解决

这很奇怪,因为两台服务器上的一切似乎都相似。然后突然知道新主机上表列的编码不是utf8。这对我来说很奇怪,因为我刚刚从以前的服务器导入了整个数据库。服务器排序规则为 utf8mb4_general_ci,表的排序规则相同,但表列的集合不同。不知道怎么改的。我苦苦挣扎了一个星期才解决它,当我发现这个时,我正要毁掉我的笔记本电脑!!!

【讨论】:

以上是关于更改托管服务器后,乌尔都语单词无法正确显示的主要内容,如果未能解决你的问题,请参考以下文章

通过 xampp 托管时,保存为 php 的 JqueryMobile 页面无法正确显示

无法从托管 wcf 的 Windows 服务启动 WinWord

非托管 DLL 无法在 ASP.NET 服务器上加载

无法在 ASE 中托管的 Linux 应用服务计划上配置 API 应用

此帐户已被暂停。有关更多信息,请联系您的托管服务提供商 [关闭]

无法在 IIS 中托管 Web 服务