gpt4 book ai didi

ruby - Ruby中如何处理 ""等字符

转载 作者:数据小太阳 更新时间:2023-10-29 07:57:08 25 4
gpt4 key购买 nike

我想将“HELLO”转换为“HELLO”,删除所有在插入数据库时​​会导致问题的特殊字符。它们似乎不是 UTF8 的一部分。

我想弄清楚 Iconv ,但我有点卡在这里:

str = "A string with " to "A string with "
some_format = "I have no clue what format this is"
Iconv.conv(some_format, 'UTF-8//IGNORE', str)

这样做:

Iconv.conv('UTF-16', 'UTF-8//IGNORE', str)

...返回...

\376\377\000H\000E\000L\000L\000O?G?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?????\342

我不想转换为 UTF8 以外的格式,因为我必须处理阿拉伯字符、中文、日文、韩文...

如有任何帮助/指点,我们将不胜感激。我正在使用 Ruby 1.8.7,但我应该很快迁移到 1.9.3。在这两种情况下都适用的解决方案是最好的,但仅适用于 1.9.3 的解决方案也可以。

最佳答案

这是一种删除特定编码中不存在的字符的方法(将字符串转换为另一种编码时)

# -*- coding: utf-8 -*-
a = "⚒og"
p a => ⚒og
p a.encode('iso-8859-1', :undef => :replace, :replace => '') => og

但是您的问题可能有所不同。因为那些有问题的字符不太可能不是 utf-8 的一部分。可能出现的问题:

  1. 也许只是您使用的字体不知道如何显示这些字符。很少有字体具有完整的 utf-8 字符覆盖范围。我不知道您如何尝试显示这些字符串,但请确保您使用的字体具有良好的字符覆盖率。例如 DejaVu,http://dejavu-fonts.org/wiki/Main_Page

  2. 您确定您的数据库已正确配置为使用 utf-8 吗?

  3. 另外要小心,因为您的字符串可能非常好,但由于不完整的 utf-8 支持(以前发生在我身上)而无法显示在您的终端或数据库应用程序中。因此,当您的调试显示出现问题时,有时调试起来会很棘手……(这有意义吗?)

关于ruby - Ruby中如何处理 ""等字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9837443/

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