【发布时间】:2016-08-03 06:56:18
【问题描述】:
我有一个外部窗口应用程序调用 PERL 脚本,其字符串包含 �。我正在尝试检测每个这样的实例并将其替换为 &。
我尝试使用所有这些但没有任何效果:
$line =~ s/\uFFFD/&/g;
$line =~ s/�/&/g;
$line =~ s/\x{fffd}/&/g;
$line =~ s/\xfffd/&/g;
【问题讨论】:
-
请提供
use Data::Dumper; { local $Data::Dumper::Useqq = 1; warn(Dumper($str)); }的输出 -
如果你有字符 FFFD,第三个就可以了。
-
@Pedro Lobito,该字符用于表示无效的内容。在你的源代码中加入一些无效的东西是一个糟糕的选择。
-
@ikegami ,我明白这一点,但我无法在 Windows 应用程序中更改任何内容。
-
我使用了 Data::Dumper,作为字符串的一部分,我得到了这个 \\302\\201。所以如果我应用“s/\x81/&/g”,我会得到“�&”。我该如何摆脱那个 � 或 \\302?