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

如何使用PHP按ASCII十六进制码查找替换文本中的指定字符

使用PHP处理Win1252编码文本中的0x9D符号

方法1:直接处理Win1252编码字节

如果你的文本本身就是Win1252编码的字节流,可直接定位并替换0x9D对应的字符:

// 读取Win1252编码的文本(示例:从文件读取)
$win1252_text = file_get_contents('target_file.txt');

// 替换所有0x9D符号为空字符串,也可替换为空格等自定义内容
$clean_text = str_replace("\x9D", '', $win1252_text);

// 若需保存回Win1252编码的文件
file_put_contents('clean_file.txt', $clean_text);

方法2:转换为UTF-8后处理

如果需要将文本转为UTF-8再操作,先完成编码转换,再替换0x9D对应的UTF-8编码(\xC2\x9D):

// 读取原始Win1252文本并转为UTF-8
$utf8_text = mb_convert_encoding(file_get_contents('target_file.txt'), 'UTF-8', 'Windows-1252');

// 替换UTF-8中的对应字符
$clean_utf8_text = str_replace("\xC2\x9D", '', $utf8_text);

// 若需转回Win1252编码保存
$clean_win1252_text = mb_convert_encoding($clean_utf8_text, 'Windows-1252', 'UTF-8');
file_put_contents('clean_file.txt', $clean_win1252_text);

正则表达式替换(可选)

也可以用正则表达式实现全局替换,效果和str_replace一致:

// Win1252编码下替换
$clean_text = preg_replace('/\x9D/', '', $win1252_text);

// UTF-8编码下替换
$clean_utf8_text = preg_replace('/\xC2\x9D/', '', $utf8_text);

注意事项

  • 确保明确文本的原始编码:若不确定编码,可使用mb_detect_encoding辅助检测,但建议优先确认文本来源的编码信息。
  • 替换后的编码一致性:如果需要保持Win1252编码,处理后记得转换回对应编码再保存。

内容的提问来源于stack exchange,提问作者Maksym K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:57:52