使用 php 修复 html 文档上错误显示的编码

发布于 2024-09-16 19:18:58 字数 613 浏览 3 评论 0原文

有没有办法修复通过 phpquery::newDocument 运行此 html 标记后显示不正确的字符?原始文档中的 -Classics with Modern Woman- 周围有预定的双引号,在使用 phpquery 创建新文档后最终显示不正确。

    //Original document is UTF-8 encoded
$raw_html = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><p>Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.</p></body></html>';
print($raw_html);

$aNew_document = phpQuery::newDocument($raw_html);
print($aNew_document);

原始输出: 曼谷的史密斯先生庆祝“经典与现代女性”。

新文件输出:曼谷的史密斯先生庆祝“经典与现代女性”。

Is there a way to fix the characters that display improperly after running this html markup through phpquery::newDocument? There are slated double quotes around -Classics with modern Woman- in the original document that end up displaying improperly after creating the new doc with phpquery.

    //Original document is UTF-8 encoded
$raw_html = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><p>Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.</p></body></html>';
print($raw_html);

$aNew_document = phpQuery::newDocument($raw_html);
print($aNew_document);

Original Output:
Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.

New Document Output: Mr. Smith of Bangkok celebrated the �Classics with modern Woman.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

錯遇了你 2024-09-23 19:18:58
  1. 您需要使用 UTF-8 without BOM 编码保存页面。
  2. 将此标头添加到脚本顶部:

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

[编辑]:如何将文件另存为不带 BOM 的 UTF-8 :

根据 OP 请求,您可以执行以下操作Windows:

  1. 下载Notepad++。这是一个很棒的文本编辑器,您应该使用。
  2. 安装它。
  3. 在 Notepad++ 中打开包含此代码的 PHP 脚本。您进行所有编码的页面。是的,您计算机上的该文件。
  4. 在 Notepad++ 中,从顶部的“编码”菜单中选择“转换为不带 BOM 的 UTF-8”。
  5. 保存文件。
  6. 通过 FTP 或您使用的任何方式上传到您的网络服务器。
  7. 现在,运行该脚本。
  1. You need to save the page with UTF-8 without BOM encoding.
  2. Add this header on top of your script:

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

[EDIT]: How to Save Files as UTF-8 without BOM :

On OP request, here's how you can do on Windows:

  1. Download Notepad++. It is an awesome text-editor that you should be using.
  2. Install it.
  3. open the PHP script in Notepad++ that contains this code. The page where you are doing all the coding. Yes, that file on your computer.
  4. In Notepad++, from the Encoding menu at the top, select "Convert to UTF-8 without BOM".
  5. Save the file.
  6. Upload to your webserver by FTP or whatever you use.
  7. Now, run that script.
海风掠过北极光 2024-09-23 19:18:58

我遇到了同样的问题,但是当我将

ob_start();

第一行添加到

ob_end_flush();

最后时,它似乎正在工作

i had the same problem but when i added

ob_start();

to first line

ob_end_flush();

to the end it seem to be working

无边思念无边月 2024-09-23 19:18:58

您可以在 元素中找到此内容:

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

下一课程是使用 HTML 实体来显示这些字符。

You have this in the <head> element:

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

The next course would be to use HTML entities to display these characters.

少女的英雄梦 2024-09-23 19:18:58

我使用 phpQuery 类遇到了同样的问题。问题如上所述,在投票最高的答案中 - 脚本文件保存为带有 BOM 的 UTF8。

由于我没有机会在 mac osX 上获取 notepad++,

因此我像这样准备的每个输出 utf8_decode()

BOM 都是针对 MS-windows 的。

I had same problem using phpQuery class. Problem IS as mentioned above, in top voted answer - script file is saved as UTF8-with BOM.

As i had no no chance getting notepad++ on mac osX,

every output i prepared like this utf8_decode()

BOM is meant for MS-windows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文