【问题标题】:Convert UTF-8 to ASCII将 UTF-8 转换为 ASCII
【发布时间】:2019-10-31 10:04:15
【问题描述】:

正确的答案是你不能。但是,我正在寻找一个有用而不是正确的答案。

垃圾邮件发送者将(即使拼写正确)垃圾邮件 ASCII 关键字转换为不同的非 ASCII UTF-8 字符,典型(西方)人类很容易(并且错误地)误认为原始的 7 位 ASCII 垃圾邮件关键字。

我想要的是一个转换工具,它将执行与垃圾邮件发送者所做的相反的操作,错误地将 UTF-8 字符串转换回看起来相似的 7 位 ASCII 序列,看起来像垃圾邮件发送者的垃圾邮件美国英语单词想让我误读(尽管学究式地,UTF-8 不是来自 ASCII 子集)。

我正在寻找可用于电子邮件主题行的内容。然后,我可以在花 5 分钟通过我的高速 110 波特声学链接下载网页或电子邮件之前将其关闭。

平台是通用 Linux 系统(例如运行 Raspbian 或 Ubuntu 的 Raspberry Pi)上常用的任何语言。

【问题讨论】:

  • 按照您的意思,这很简单,只是没有我熟悉的标准化方法。 2 小时乏味的“查看 Unicode 字符,如果合适的话映射到 ASCII”创建一个表格工作,你应该完成了。有很多 Unicode 字符,但它们不是无限的。
  • 也许您可以做一些不同的事情,例如用正则表达式点替换非 ascii 字符 (Høst Fæst => /H.st F.est/) 并使用正则表达式与您的单词列表进行比较。它不会是防弹的,但可能比尝试映射所有相似的 uft 字符更容易实现。
  • @Juan 这又引入了一个问题;您的正则表达式与审美不匹配,但这绝对是它的阅读方式;你仍然需要一张地图来决定你想要多少通配符(两个代表æ,可能,两个代表ᇉ、ㆀ等)。
  • @WillihamTotland 你是对的。我知道这不是万无一失的解决方案,而且您可能也会得到错误的肯定。我从你那里偷来的例子 :) 不是最好的,但我认为在大多数情况下,替换将是一个角色。

标签: utf-8


【解决方案1】:

令人烦恼的是,答案仍然是你做不到。

基本思想是合理的,但人类喜欢让生活变得复杂,所以some letters have a significant variation in shape between languages

这意味着对于给定的字符序列,不一定清楚该序列应该类似于哪个美国英语单词。

此外,即使您可以可靠地减少字符序列,英语也与许多都使用自己独特的字母变体的欧洲语言密切相关。

例如,减少“Høst Fæst!”到“主机快!” (也可能)会导致您错误地将来自明尼苏达州的堂兄邀请您参加感恩节的略带洋泾浜的挪威电子邮件标记为托管服务提供商的垃圾邮件。

当然,调用其中任何一个都是过河取水:

只需考虑(全 ASClI)主题行“PilIs!PiIls!PiIIs!”。

【讨论】:

    猜你喜欢
    • 2012-08-04
    • 2011-06-26
    • 2012-10-29
    • 1970-01-01
    • 2011-06-19
    • 2017-11-20
    • 1970-01-01
    • 2015-08-06
    • 2015-04-07
    相关资源
    最近更新 更多