在Web形式条目中,我们看到正在使用的奇怪字符,例如:
’(Windows 1252编码)
或
𧒕(表情符号)
或
â€â€(不知道,但认为是Windows 1252)
对于其中一些,我可以使用正则施以将其简单地用UTF-8等效替换,但我更喜欢使用某种正则或对有效删除它们的编码。
我已经将MySQL中的DB表设置为UTF-8
在Perl中,最好,最理想的解决方案是什么?还是可以在MySQL表中进行?
’
是u 2019右单引号标记(’
)使用UTF-8编码,然后在CP1252终端上显示。
💕
是u 1f495两颗心(💕
)类似地受到虐待。
‬
是U 202C流行方向格式使用UTF-8编码,然后第二次使用UTF-8编码,然后在CP1252终端上显示。
在Perl中,最佳和最理想的解决方案是什么?还是可以在MySQL表中进行?
取决于。
如果您的Perl程序中有一个错误,则应修复它!
如果数据在数据库中不良,则应修复该数据(以及数据库中的错误数据)!
就目前而言,您没有以一种或另一种方式提供证据。(提供该字段的编码和SELECT HEX(field)
,将揭示数据是否在数据库中。)
这应该删除所有特殊字符。您可以检查ORD表,以确保您所需的任何内容都不会被删除。
$line =~ s/(.)/(ord($1) > 127) ? "" : $1/egs;