将带重音的文本转换为 ASCII 字符?

2023-11-23

我想在 Javascript 中将重音字母和各种编码转换为纯英文 ASCII 编码,并想知道有哪些可能的选项。我需要的是:

éclair ~becomes~ eclair

bär ~becomes~ bar

привет ~becomes~ privet

こんにちは ~becomes~ konnichiva

正如你所看到的,这个想法是任何语言都会被转换成简单的英语 ASCII 等价物。 áčçéñtèd 字母将转换为它们的普通等效字母,西里尔字母或日文编码中的字母将转换为它们的音译等效字母。

有人知道用 Javascript 实现这一点的方法吗?


有许多 Node 模块可以做类似的事情,但比 node-iconv 轻得多,特别是,它们都是 JS 的,不需要您编译任何 C 或 C++:

  1. 节点统一码似乎主要满足您的要求:

    $ npm install unidecode
    ...
    [email protected] node_modules/unidecode
    $ node
    > var unidecode = require('unidecode');
    undefined
    > unidecode('éclair')
    'eclair'
    > unidecode('bär')
    'bar'
    > unidecode('привет')
    'priviet'
    > unidecode('こんにちは')
    'konnitiha'
    
  2. 节点音译器重量更轻,但行为与您的要求相差甚远:

    $ npm install transliterator
    ...
    [email protected] node_modules/transliterator
    $ node
    > var transliterator = require('transliterator');
    undefined
    > transliterator('éclair')
    'eclair'
    > transliterator('bär')
    'baer'
    > transliterator('привет')
    ''
    > transliterator('こんにちは')
    ''
    
  3. 节点 URL 化稍微接近但也离你要求的更远:

    $ npm install urlify
    ...
    [email protected] node_modules/urlify
    $ node
    > var urlify = require('urlify').create({ spaces: ' ' });
    undefined
    > urlify('éclair')
    'eclair'
    > urlify('bär')
    'bar'
    > urlify('привет')
    'privet'
    > urlify('こんにちは')
    '_____'
    
  4. 最后,limax是更重量级的,当我这样做的时候npm install limax它打印了很多 C 编译器警告,但它仍然有效,并且最接近您的要求:

    $ npm install limax
    ...
    [email protected] node_modules/limax
    ├── [email protected]
    ├── [email protected]
    ├── [email protected] ([email protected])
    └── [email protected]
    $ node
    > var slug = require('limax')
    undefined
    > slug('éclair')
    'eclair'
    > slug('bär')
    'baer'
    > slug('привет')
    'privet'
    > slug('こんにちは')
    'konnichiha'
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将带重音的文本转换为 ASCII 字符? 的相关文章

  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • React 渲染中的不变违规或 React 中迭代和返回的正确方法

    我在 React 渲染中遇到了持续存在的问题 这段代码 jsx React DOM var AnswerRows React createClass componentDidMount function render function th
  • 作为 Visual Studio Team Services 构建任务的一部分运行“节点测试”,结果显示在“测试”选项卡中

    我有一个项目 其中包含我从命令行使用 Mocha 运行的测试 我已经在我的中设置了一个测试脚本packages json 如下所示 test mocha spec js reporter dot require jsdom global r
  • 如何使用 LinkedIn javascript sdk 检索包括所有字段的职位列表?

    我想要获取 LinkedIn 会员在其个人资料中输入的每个职位的 ID 头衔 摘要 开始日期 结束日期 当前状态和公司名称 我测试了一个查询休息控制台 https apigee com console linkedin我得到了想要的结果 查
  • 如何在nodejs中模拟请求和响应来测试中间件/控制器?

    我的应用程序有几个层 中间件 控制器 管理器 控制器接口与中间件一相同 req res next 所以我的问题是 如何在不启动服务器并向本地主机发送 真实 请求的情况下测试我的控制器 我想要做的是像nodejs那样创建请求 响应实例 然后调
  • 如何获取 RxJSSubject 或 Observable 的当前值?

    我有 Angular 2 服务 import Storage from storage import Injectable from angular2 core import Subject from rxjs Subject Inject
  • npm install 不下载最新包

    语境 我在使用 npm install 命令使用最新的依赖项更新我的 package json 时遇到问题 我正在具有多分支管道的 Jenkins 从属设备上运行 不确定这是否是原因 另一个帖子有类似的问题 但没有得到答复 npm 安装后
  • jQuery 的 css() 在应用于滚动事件时滞后

    我正在尝试实现一个简单的 固定标题 表 我知道这在理论上只能用 CSS 来完成 但是当涉及到 OSX Lion 及其消失的滚动条时 它效果不佳 所以我用 jQuery 来做 方法很简单 只有1 5行代码 inbox scroll funct
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • ReactJS:从没有 onChange 事件的 props 中选择默认值?

    所以 我只是想知道我是否绝对需要在 React 中的选择组件上有一个 onChange 事件处理程序 我有一个道具传递我想要选择的选项的默认值 如果我有的话 它就没有问题
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • Window 与 Var 声明变量[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • FullCalendar 检查选择日是否有活动?

    我正在使用 Full Calendar js 插件 到目前为止一切顺利 但我想检查开始和结束之间的选择是否有事件 我只需要返回 true 或 false 基本上 如果日期选择中已经存在事件 我想阻止用户创建事件 var calendar c

随机推荐

  • 使用 AutoLayout 在不同高度的两列中堆叠

    针对 iOS 8 1 我正在使用 AutoLayout 在 TableCell 中布置多个标签 其中一些标签是可选的 有些可以包裹它们的文本 它们分为两个 列 这些列只是 TableCell 的 ContentView 中的两个 UIVie
  • 正则表达式模式任意两个字母后跟六个数字

    请协助使用正确的正则表达式来匹配任意 2 个字母 后跟 6 个整数的任意组合 These would be valid RJ123456 PY654321 DD321234 These would not DDD12345 12DDD123
  • 存储在元组内的元素总和

    给定一个包含一堆整数元素的元组 如何找到所有元素的总和 例如 如果我有一个元组列表 li 1 2 1 3 2 3 我怎样才能得到这样的东西 3 4 5 其中 3 4 和 5 分别是三个元组的总和 您可以使用map and sum像这样的功能
  • 从多个 Web.config 文件访问 appSettings

    我正在设计一个 ASP NET MVC4 Web 应用程序项目 在我的项目的根目录中 我有惯用的默认值Web config文件与我相应的元素 特别是我有几个appSettings定义的元素 作为演示这一点的示例摘录
  • Kubernetes:如何增加临时存储

    我有三个主节点 每个节点的磁盘大小为 80 GB 最近我遇到了这个问题 Normal Pulling 52s x2 over 6m17s kubelet 192 168 10 37 pulling image gcr io kubeflow
  • Facebook Connect 和 HTML5、xmlns 可用吗?

    Facebook Connect 及其 社交小部件 文档提到您需要添加xmlns归因于你的将使用它的页面上的标签 我明白那个xmlns用于 XML 名称间距 并且之前已将其与 XHTML 一起使用 然而 随着最近有关 HTML4 HTML5
  • 如何首先使用 EF 代码映射现有的 sql server 视图

    我对 EF 相当陌生 首先学习 EF 代码 我正在寻找一种知识来首先使用 EF 代码映射现有的 sql server 视图 我已经用 POCO 映射了我的视图 但出现以下错误 当我尝试从视图中获取数据时抛出以下错误 附加信息 支持 Test
  • PBS_MARQUEE 进度条 WinApi

    我正在尝试让 PBS MARQUEE 类型的进度条正常工作 我可以创建进度条 但我就是无法让它移动 如果发现这个 但我不清楚我必须做什么 事实证明 由于我将进度条作为资源而不是使用 CreateWindowEx 所以我必须使用 SetWin
  • ::(双冒号)在 DOS 批处理文件中意味着什么?

    我找到了这个程序web archive org http baiyunmanor com blog work get current date time in dos batch file This uses Windows Scripti
  • JPA 标准生成器:如何按顺序替换字符串并将其转换为数字?

    有人可以建议我如何使用 JPA Criteria 构建器 API 构建以下查询吗 SELECT id name date version FROM public upgradeTable order by CAST replace vers
  • 快速计算 .numpy 数组中每 N 行的平均值

    我有一个非常大的屏蔽 NumPy 数组 originalArray 有很多行和两列 我想取每两行的平均值originalArray并建立一个newArray其中每一行是两行的平均值originalArray so newArray行数为or
  • 在 javascript 或着色器中更好地乘以矩阵?

    我一直在看几个 webgl 示例 考虑MDN 的教程 他们的顶点着色器将顶点乘以透视矩阵和世界位置矩阵 gl Position uPMatrix uMVMatrix vec4 aVertexPosition 1 0 But the uMVM
  • Java序列化-Android反序列化

    我尝试过在 Java 和 Android 之间实现跨平台序列化 我使用了 Serialized 并将 Android 中的代码与桌面 Java 中的代码放在同一个包中 来源 java desktop 序列化 Student student
  • 从 Service Fabric 集群中删除应用程序

    我尝试使用服务结构资源管理器从服务结构中删除应用程序 我使用 删除应用程序 操作删除了我的应用程序 然后 当我尝试取消配置应用程序类型时 我收到错误消息 错误 版本 1 0 0 的应用程序类型无法取消配置为 它仍然包含活动的应用程序 我可以
  • “await Task.Run(); return;”之间的任何区别和“返回Task.Run()”? [复制]

    这个问题在这里已经有答案了 以下两段代码之间是否存在概念上的差异 async Task TestAsync await Task Run gt DoSomeWork and Task TestAsync return Task Run gt
  • 计算文件中的单词数

    我在计算文件中的字数时遇到问题 我采取的方法是 当我看到空格或换行符时 我就知道要计算单词数 问题是 如果我在段落之间有多行 那么我最终也会将它们算作单词 如果您查看 readFile 方法 您就可以看到我在做什么 您能帮助我并指导我如何解
  • Monad 变压器的使用

    我正在 Haskell 书中读到有关 monad 转换器的内容 作者提到如下 莫纳德呢 组合两个任意数据类型没有问题 有 Monad 实例 我们在使用 Compose 时已经看到了这一点 Maybe 和 list 都定义了 Monad 实例
  • Github - 文件 XYZ 为 126.80 MB;这超出了 GitHub 的文件大小限制 100.00 MB

    我有一个本地存储库 其中意外添加了一个大文件 现在我落后了近 100 个提交 当我尝试推送到 GitHub 时 出现错误 我需要帮助做任何我需要做的事情才能推送这个存储库的其余部分 我不需要这个文件 可以永久删除它 旁注 这是一个包含 IP
  • RoR 预编译资产在 rake asset:precompile 时失败 - 在基本上空的 application.js 上

    Running bundle exec rake assets precompile RAILS ENV production trace Execute assets precompile primary rake aborted Typ
  • 将带重音的文本转换为 ASCII 字符?

    我想在 Javascript 中将重音字母和各种编码转换为纯英文 ASCII 编码 并想知道有哪些可能的选项 我需要的是 clair becomes eclair b r becomes bar becomes privet becomes