0

当我以代码形式从 Word Press 帖子中获取标题并将它们作为电子邮件传递时,标点符号有点混乱。

例如"TAMAGOTCHI P’S LOVE & MELODY SET"出来为"TAMAGOTCHI P’S LOVE & MELODY SET".

任何想法我如何防止这种情况?

如果您需要查看我当前使用的特定代码,请告诉我。(我不确定这是 WordPress 问题还是 PHP 问题。

编辑 会发生什么是这个标题通过查询字符串传递给表单。然后,当提交表单时,我从表单字段中获取字符串并通过电子邮件发送。

因此,我想我需要在将 html 传递到表单字段之前或通过电子邮件发送之前对其进行解码。

编辑 2 很奇怪,所以我仔细查看了代码,在将值传递到表单字段之前,我已经在进行 urldecode

jQuery('#product_name').val("<?php echo urldecode(strip_tags($_GET['pname'])); ?>

序列化时是否发生了一些默认编码(对于 ajax 表单处理程序)

    var dataString = $(this).serialize();

EDIT 3 OK 结果证明代码更复杂。标题在表单出现之前也会传递给某种类型的 wordpress 会话。我会弄清楚我需要将urldecode放在哪里。谢谢!

4

2 回答 2

1

这是我可以做的一个 WordPress“功能”。

这是一种替换花哨的引号(或其他实体)的方法:

$title = get_the_title( get_the_ID() );
$title = str_replace( '&#8217', "'", $title );
echo $title;

the_title如果您想在整个站点中使用相同的实体功能,我们可以通过挂钩来更深入地集成。此代码块将属于您的主题functions.php文件。

function reform_title($title, $id) {
    $title = str_replace( '&#8217', "'", $title );
    return $title;
}
add_filter('the_title', 'reform_title', 10, 2);
于 2013-02-14T16:51:55.843 回答
0

我不太确定 wordpress,但问题本身就是文本以 URLENCODE 而不是 UTF-8 或其他编码的形式出现。

你有两个选择

  1. 当您收到文本时,您永远不会将其恢复为正常编码(这很奇怪,因为当您访问 $_GET 或 $_POST 变量时,通常会被 php 解编码)

  2. 您正在使用 urlencode() 函数解析消息。

于 2013-02-14T16:52:23.380 回答