gpt4 book ai didi

将 unicode 伪字母转换为常规字符的 JavaScript 函数?

转载 作者:行者123 更新时间:2023-12-04 14:16:30 31 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数接受包含 unicode pseduo-alphabets 中字符的任何字符串,并返回一个等效的字符串,其中这些字符已被替换为 ASCII 中的常规字符。

const toRegularCharacters = s => {
// ?
};

toRegularCharacters('ⓗⓔⓛⓛⓞ, ⓦⓞⓡⓛⓓ'); // "hello, world"
toRegularCharacters('𝓱𝓮𝓵𝓵𝓸, 𝔀𝓸𝓻𝓵𝓭'); // "hello, world"
toRegularCharacters('ん乇レレo, wo尺レd'); // "hello, world"

我不想自己写一个查找表。我看过各种“slugify”库,但它们只删除重音等。理想情况下,该函数应该在 Node 和浏览器中工作。

当然,并不是每个特殊字符都会有一个普通的等价物。在这些情况下,解决方案应该做出合理的猜测(例如 "尺" -> "R" )。对于具有“真实变换”的伪字母表,它应该可以完美地工作:

Current true transforms: circled, negative circled, Asian fullwidth, math bold, math bold Fraktur, math bold italic, math bold script, math double-struck, math monospace, math sans, math sans-serif bold, math sans-serif bold italic, math sans-serif italic, parenthesized, regional indicator symbols, squared, negative squared, and tagging text (invisible for hidden metadata tagging).


  • 来自 https://qaz.wtf/u/convert.cgi

  • 我应该怎么做?

    从“常规”字符串到伪字母字符串在此处实现: https://qaz.wtf/u/convert.cgi?text=hello%2C+world

    最佳答案

    您可以编写代码来查询 Unicode 数据库,您可以从 Unicode consortium 下载该数据库。 (或通过 character utility 查询,但这可能是限速的)。该数据库包括诸如什么字形对其他字形“易混淆”的内容。

    例如,你的𝓱来自𝓱𝓮𝓵𝓵𝓸,𝔀𝓸𝓻𝓵𝓭是U+1D4F1 ,其中有 手数的混淆,其中之一当然是标准的拉丁小写 h ( U+0068 )。所以你可以遍历输入字符串中的每个字符,查找它,如果它有一个拉丁 a-z 容易混淆(可能是 0-9),用它替换它。

    它不会是完美的。正如 deceze 所指出的,没有列出任何容易混淆的词,即使它对英语读者来说确实有点像“h”。 也不行.因此,即使您已经说过不想(或只是忍受不完美),您也可能需要补充自己的查找。

    关于将 unicode 伪字母转换为常规字符的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59613915/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com