使用 Python 将国际字符替换为基本拉丁字符的好方法是什么?

2023-11-21

说我有绳子"blöt träbåt"其中有几个a and o上面有变音符号和圆环。我希望它成为"blot trabat"尽可能简单。我做了一些挖掘并发现了以下方法:

import unicodedata
unicode_string = unicodedata.normalize('NFKD', unicode(string))

这将为我提供 unicode 格式的字符串,其中国际字符分为基本字母和组合字符 (\u0308变音符号。)现在我可以将其恢复为 ASCII 字符串ascii_string = unicode_string.encode('ASCII', 'ignore')它只会忽略组合字符,从而产生字符串"blot trabat".

这里的问题是:有更好的方法吗?这感觉像是一种迂回的方式,我在想可能有什么我不知道的事情。我当然可以将它包装在一个辅助函数中,但我宁愿检查 Python 中是否已经存在这个函数。


如果您创建一个显式表,然后使用 unicode.translate 方法,那就更好了。优点是音译更精确,例如将“ö”音译为“oe”,将“ß”音译为“ss”,就像德语中的做法一样。

PyPI 上有几个音译包:转译编解码器, 统一编码, and trans.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 将国际字符替换为基本拉丁字符的好方法是什么? 的相关文章

随机推荐

  • 使用 heapy 追踪 Django 应用程序中的内存泄漏

    我在这里关注了如何使用 Django 设置 heapy 的优秀帖子 http www toofishes net blog using guppy debug django memory leaks 我已经命令 hp setref 现在过了
  • 带有 id 和逗号的 jQuery 选择器

    我在用我的表格网格在我的网页中显示类似 Excel 的控件 对于表 1 第 0 列 第 2 行 单元格使用诸如 mtgIC1 0 2 之类的 id 进行引用 不幸的是 当我尝试使用带有此 id 的 jQuery 选择器时 mtgIC1 0
  • 如何为一个类实例化多个 CDI/Weld bean?

    在 Spring 中 可以通过在 xml conf 中定义相应的 bean 来实例化任何类 也可以使用不同的参数为同一类实例化多个 bean CDI 中是否也有这样的功能 即是否可以使用不同的初始化参数创建同一类的不同实例 是否也可以在不更
  • 如何用 Java 测试互联网的可用性?

    当我从 url openStream 捕获异常时 我不想告诉大家互联网不可用 有没有一种简单的方法可以用Java判断计算机是否连接到互联网 在这种情况下 连接到互联网 意味着能够从特定的 URL 下载数据 如果我尝试从中下载但它不可用 则程
  • hibernate 验证器 - 创建、更新、删除时的不同组

    使用 bean 验证 特定的 hibernate 验证器实现是否可以定义某些组以自动用于某些 CRUD 操作 例如创建或更新 或者是否有一些内置的休眠组可以在内部检查这些操作 您可能正在寻找 Hibernate 基于事件的验证 under
  • 如果在 uib-tabset 中使用,值不会与作用域的变量绑定

    如果在内部使用 值不会与作用域的变量绑定uib 选项卡集 在下面的例子中我试图得到 scope messageuib tab 内部和外部 angular module app ui bootstrap controller myctrlr
  • MongoDB 聚合期间“服务器 x 超时”

    我有一个定期对 mongodb 集合运行聚合的脚本 随着数据集的增长 聚合所需的时间也随之增长 我的聚合脚本最近停止工作 错误日志显示 error MongoError server
  • WPF Toolkit Datagrid - 如何关闭选择?

    我在 WPF 中有一个数据网格 我将其绑定到一个对象 我在那里有一个 DataGridCheckBoxColumn 我希望用户能够浏览并勾选他们想要的 问题是他们必须单击两次 一次用于选择 然后再次单击 取消选中 你到底如何关闭这个功能 我
  • php获取唯一子数组[重复]

    这个问题在这里已经有答案了 我想在 PHP 中获得一个解决方案 以获取基于子数组基础的唯一数组 像这样 Array 0 gt Array 0 gt 1227 1 gt 146 2 gt 1 3 gt 39 1 gt Array 0 gt 1
  • 使用文本溢出:省略号;仅当达到 div 中的 3 行时[重复]

    这个问题在这里已经有答案了 这是我的 css 片段 test width 150px height 60px white space nowrap overflow hidden text overflow ellipsis o text
  • bouncycastle 连接到 android studio

    一天中的好时光 我需要以某种方式将 bouncycastle 库连接到 android studio 如何才能做到这一点 我以前从未处理过 这是我需要这个库的代码 Security addProvider new org bouncycas
  • 从 ArrayAdapter 获取FragmentManager

    我有一个由自定义 ArrayAdapter 填充的 listView 每个视图中都有一个按钮 我想在单击按钮时更改当前片段 这是我的代码 public class CheckInSArrayAdapter extends ArrayAdap
  • 求列表中向量的平均值

    我有一个 Vector3 列表 每个都有 x y z 值 List
  • 为什么两个不同对象上的哈希函数返回相同的值?

    我使用Spyder 运行Python 2 7 刚刚发现有趣的事情 hash 1 和hash 2 都返回 2 有问题吗 我认为不同对象上的哈希函数应该返回不同的值 我读过以前的文章 说 1 在 Python 中被保留为错误 hash s 返回
  • C# 支持返回类型协方差吗?

    我正在使用 NET 框架 我真的希望能够制作我的所有网站都使用的自定义类型的页面 当我尝试从控件访问页面时 问题就出现了 我希望能够返回特定类型的页面而不是默认页面 有什么办法可以做到这一点吗 public class MyPage Pag
  • 如何使用 PHP 在 heroku 上发送电子邮件?

    我已经创建了 PHP 应用程序并使用 heroku 进行了部署 在应用程序中 我有联系表格可以将邮件发送到我的 Gmail 帐户 为了实现这一点 我编写了以下 PHP 代码
  • 3 下拉菜单根据另一个[级联下拉菜单]中的选择进行填充

    我是 Java 脚本新手 这里我有 2 个下拉菜单的工作示例Fiddle HTML
  • 在 Yii gridview 分页中保留复选框值

    我有一个 gridview 其中包含一个复选框列 并且还使用分页 当我选中第一页中的某些复选框并导航到第二页并选中第二页中的另一个复选框时 我在第一页中选中的选项不会保留在那里 分页期间是否可以保留复选框值 Gridview 的代码是 wi
  • 在 ASP.NET 中使用 Ext JS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我没有 JavaScrip
  • 使用 Python 将国际字符替换为基本拉丁字符的好方法是什么?

    说我有绳子 bl t tr b t 其中有几个a and o上面有变音符号和圆环 我希望它成为 blot trabat 尽可能简单 我做了一些挖掘并发现了以下方法 import unicodedata unicode string unic