You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP替换网页代码中嵌入的TM符号?

解决PHP替换直接嵌入的™符号问题

这个问题我在项目里碰到过好几次,大多是字符编码不匹配或者直接操作字符时的编码差异导致str_replace没生效,给你几个实用的解决方案:

1. 用Unicode转义字符精准替换

直接写"™"可能因为文件编码、文本来源的编码差异导致匹配失败,改用Unicode转义的方式更可靠——™的Unicode编码是U+2122,PHP里可以这样写:

// 针对UTF-8编码的™字符替换(兼容大部分场景)
$new_text = str_replace("\x{2122}", "™", $new_text);

// PHP 7.0及以上版本可以用更直观的Unicode语法
$new_text = str_replace('\u{2122}', "™", $new_text);

2. 批量替换所有可能的形式

除了直接嵌入的™字符,还要考虑已经被转成实体的情况(比如™十进制实体、™十六进制实体),可以一次性替换所有可能的变体:

$search_list = [
    "\x{2122}",       // 原生™字符
    '™',        // 十进制HTML实体
    '™',       // 十六进制HTML实体
    '™'         // 可选:如果想统一成标准实体,避免重复替换
];
$replace_str = '™';

$new_text = str_replace($search_list, $replace_str, $new_text);

3. 多字节字符场景用mb_str_replace

如果你的文本是多字节编码(比如UTF-8),普通的str_replace偶尔会因为字节层面的匹配问题失效,这时候可以用mb_str_replace(需要确保PHP的mbstring扩展已启用):

$new_text = mb_str_replace("\x{2122}", "™", $new_text);

额外排查小贴士

  • 检查你的PHP文件编码是否为UTF-8,避免写在代码里的替换字符和目标文本里的™编码不一致;
  • 如果文本来自数据库、API等外部来源,先确认其编码是否和你的项目编码统一(建议全流程用UTF-8)。

内容的提问来源于stack exchange,提问作者Sanfly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:34:13