Iconv:带有 ASCII//IGNORE 的 EILSEQ,但不带有 ASCII//TRANSLIT//IGNORE

2024-02-05

使用 iconv 与//TRANSLIT//IGNORE从 utf8 转换为 ascii 效果很好;它根据当前语言环境将不可转换的字符替换为正确的音译(在我的例子中为 de_DE):

> echo 'möp' | iconv -f 'UTF8' -t 'ASCII//TRANSLIT//IGNORE'
moep

然而,当刚刚使用//IGNORE没有//TRANSLIT,它会抛出一个错误:

> echo 'möp' | iconv -f 'UTF8' -t 'ASCII//IGNORE'
mp
iconv: illegal input sequence at position 5

我想知道为什么会发生这种情况。输入序列完全相同,不应该//IGNORE简单地跳过无效字符? 使用 iconv C api 时,我收到 EILSEQ 错误 - 所以基本上我不知道输入字符串是否包含无效的 UTF8...


Linux 上 iconv(1) 的手册页内容如下:

  -t to-encoding, --to-code=to-encoding
         Use to-encoding for output characters.

         If the string //IGNORE is appended to to-encoding, characters
         that cannot  be  converted  are discarded and an error is printed 
         after conversion.

它确实会跳过该字符,但也会在最后引发错误。

看来通过使用 //IGNORE 你确实无法区分输入中无效字符和不可转换字符的情况。换句话说,EILSEQ 和 EINVAL 情况的处理方式相同。

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

Iconv:带有 ASCII//IGNORE 的 EILSEQ,但不带有 ASCII//TRANSLIT//IGNORE 的相关文章

  • ruby2.0.0 在 windows 上安装 iconv 时出错

    ruby2 0 0 在 windows 上安装 iconv 时出错ruby2 0 0 在 windows 上安装 iconv 时出错我正在尝试安装 iconv 但是当我运行以下命令时 gem install iconv 我的结果 Tempo
  • 是否可以将 gcc 编译的库与 MSVC 一起使用?

    我有一个项目依赖libiconv用于多项操作 我使用预编译的二进制文件iconv lib对于 Visual Studio 2008 但现在我必须转向 Visual Studio 2010 并且不再有可用的预编译二进制文件 我决定自己编译它
  • 在 Ruby 中使用 Iconv 进行音译

    当我尝试音译西里尔字母 utf 8 字符串时 Iconv iconv ascii ignore translit utf 8 string to s see 问题 1726404 音译 in ruby 除了那些必须音译的符号之外 我得到了所
  • 在 Windows 上将 c++ dll 与 Haskell-Platform 链接,输出“未定义的引用”

    我是一名 Haskell 爱好者 并且在 Windows 上编译我的小 Haskell 程序时遇到了困难 我的程序使用iconv包 它又使用用 c c 编写的外部库 为了让事情顺利进行 我有 Run GNU图标安装程序并添加了它的 bin
  • 使用 iconv 进行简单的 UTF8->UTF16 字符串转换

    我想编写一个函数将 UTF8 字符串转换为 UTF16 小端 问题是 iconv函数似乎没有让您提前知道需要多少字节来存储输出字符串 我的解决方案是从分配开始2 strlen utf8 然后运行iconv在循环中 增加该缓冲区的大小real
  • 从 powershell 调用时 Iconv 正在转换为 UTF-16 而不是 UTF-8

    我在尝试在 powershell 脚本中使用 iconv 将某些文件的编码从 ISO 8859 1 批量转换为 UTF 8 时遇到问题 我有这个bat文件 工作正常 for f in txt do echo f C Program File
  • 如何将包含 HTML 实体和无效字符的文本转换为其 UTF-8 等效项?

    我正在更改标题 因为我不知道特殊的破损窗口字符给我带来了问题 使问题看起来像重复的 如何转换 HTML 实体 0 9 类型的字符引用和 a fA F0 9 无效的字符引用 和无效的 Windows 字符 chr 151 到其 UTF 8 等
  • 使用 find 和 iconv 更改文件名

    我尝试使用以下脚本更改文件名 find dir type f exec mv echo iconv f UTF8 t ASCII TRANSLIT 为什么不起作用 我的意思是 当我有一个带有 这样的字符的文件时 它应该将其转换为 a ech
  • mySQL 和 PHP 编码

    您好 我对此查询有疑问 SELECT FROM table WHERE name LIKE t st HTML 和 SQL 表都有 utf 8 编码 但不幸的是没有mysql set charset utf 8 我是NOT能够使用它 我尝试
  • 为什么 iconv 命令输出到同一文件会被截断?

    现在我有一些 euc jp 编码的文件需要转换为 utf 8 编码 所以我在 bash 中使用 iconv 命令 iconv foo c f euc jp t utf 8 o foo c 但是出现了一个问题 它说 usr bin iconv
  • Ruby Iconv 可与 irb 和 ruby​​ 调试器配合使用,但不能在单元测试中使用

    我在 Ubuntu 10 04 64 位上运行 Ruby 1 8 7 和 Rails 2 3 5 我写了一个方法 应该采用这样的字符串 cole la D couverte 并输出这样的文件系统名称 ecole a la decouvert
  • iconv 返回奇怪的结果

    我正在研究一种方法来解决在 PHP 中创建帐户的自动脚本中使用特殊字符的问题 由于电子邮件地址和其他地方不需要特殊字符 因此我试图删除它们 但在将它们提供给脚本之前我无法删除它们 因为用户名必须正确显示给其他用户 例子 J rgen G t
  • Iconv:带有 ASCII//IGNORE 的 EILSEQ,但不带有 ASCII//TRANSLIT//IGNORE

    使用 iconv 与 TRANSLIT IGNORE从 utf8 转换为 ascii 效果很好 它根据当前语言环境将不可转换的字符替换为正确的音译 在我的例子中为 de DE gt echo m p iconv f UTF8 t ASCII
  • 将 unicode 字符编码为 un​​icode 转义序列

    我有一个包含网站和地址的 CSV 文件 我需要处理这个文件来生成一个 json 文件 我将在 Django 中使用该文件将初始数据加载到我的数据库中 为此 我需要将 CSV 文件中的所有特殊字符转换为 unicode 转义字符 这是一个例子
  • libiconv 和 MacOS

    我正在尝试在 Mac OS X Lion 中编译 GCC 4 5 1 我的 libiconv 有问题 首先 它抱怨架构 x86 64 的未定义符号 它们是 iconv iconv open 和 iconv close 我发现 MacPort
  • 无法让 git 与 iconv 和 utf-16 很好地配合

    我试图让 git 将 UTF 16 识别为文本 以允许我本地比较和修补文本 但我无法获取textconv参数来工作 我可以手动调用 iconv f utf 16 t utf 8 some utf 16 file rc 一切都很好 但是如果我
  • 强制从 US-ASCII 编码为 UTF-8 (iconv)

    我正在尝试将一堆文件从 US ASCII 转码为 UTF 8 为此 我使用 iconv iconv f US ASCII t UTF 8 file php gt file utf8 php 我的原始文件是 US ASCII 编码的 这使得转
  • PHP,将 UTF-8 转换为 ASCII 8 位

    我正在尝试使用以下命令将字符串从 UTF 8 转换为 ASCII 8 位iconv功能 该字符串旨在导入到会计软件中 根据 SIE 标准解析一些基本指令 我现在正在运行的 iconv UTF 8 ASCII this gt output 这
  • 在 shell 中将 ANSI 转换为 UTF-8

    我正在制作一个解析器 1 csv 到 3 csv 脚本 但遇到问题 我是法国人 所以用我的语言我有这样的字母 一位客户向我发送了一个 csv 文件 Linux 将其识别为 unknown 8bit 我猜是 ansi 在我的脚本中 我正在编写
  • 使用 iconv 将 UTF-16BE 转换为无 BOM 的 UTF-8

    我正在尝试使用 iconv 将 UTF 16BE 编码文件 字节顺序标记 0xFE 0xFF 转换为 UTF 8 如下所示 iconv f UTF 16BE t UTF 8 myfile txt 然而 生成的输出具有 UTF 8 字节顺序标

随机推荐

  • 未找到“Aws\Common\Aws”类 cakephp

    我在 cakephp 中使用 AWS PHP SDK V2 8 我正在 AWS ec2 ubuntu 机器上工作 我使用 zip 文件而不是任何作曲家 我收到以下错误 Class Aws Common Aws not found 我创建了一
  • 在自己的函数中响应导航 onPress

    我已经实现了教程中的 React Navigation 示例https reactnavigation org docs intro https reactnavigation org docs intro 而且效果很好
  • 在 Spring boot 中禁用自动提交不起作用

    我设置了两个参数以通过 False 禁用自动提交 但在没有提交事务的情况下保存实体操作 spring datasource hikari auto commit false spring jpa properties hibernate c
  • 在我的文本区域中显示降价

    我正在使用 BlueCloth 从用户输入文本区域的内容中通过 markdown 创建 html 如下所示 def create post Post new params post do post body BlueCloth new po
  • 我的 Android 应用程序 ViewPager 中 PagerTabStrip 的自定义字体颜色

    我需要更改 Android 应用程序 ViewPager 中 PagerTabStrip 的字体颜色 这是相同的 xml 布局 我有什么办法可以做到这一点吗
  • 如何在Java中将文件/目录移动到回收站而不是永久删除它[重复]

    这个问题在这里已经有答案了 我正在尝试创建 GUI 示例 当用户单击按钮时删除文件和 或目录 但我看到文件被永久删除 如何使其移动到回收站而不是这个 if File path getText isEmpty JOptionPane show
  • NodeJS 文件系统观察抛出事件两次或更多次

    我正在 Ubuntu 上使用以下命令查看 NodeJS 服务器的配置文件 for var index in cfgFiles fs watch cfgFiles index function event fileName logger in
  • python argparse子命令具有依赖性和冲突

    我想使用 argparse 来构建一个带有子命令的工具 可能的语法可以是 tool py 下载 from 1234 interval 60 tool py 下载 build 1432 tool py clean 数字 10 所以我想使用ar
  • iOS AVExportSession 仅因修剪视频而失败

    我创建了一种根据给定时间范围修剪和导出视频的方法 它还会将视频旋转为横向 但由于某种原因 AVAssetExportSession 在尝试处理之前使用 UIVideoEditorController 修剪的视频时失败 以前有人遇到过这个问题
  • Errno::EACCES:运行捆绑包时权限被拒绝,它命中 json 1.8.1,pg 0.17

    我刚刚买了一台新笔记本电脑 并使用迁移助手完全转移了所有内容 似乎一切正常并且处于适当的位置 所以我不知道这是否是问题所在 我对调试这样的环境错误还很陌生 我一直在 Windows 上开发一个 Rails 项目 这台笔记本电脑是 Mac O
  • Python 字符串中的 u'\ufeff'

    我收到错误并显示以下异常消息 UnicodeEncodeError ascii codec can t encode character u ufeff in position 155 ordinal not in range 128 不知
  • JScrollPane 中的滚动更平滑

    使用 JScrollPane 的滚动条箭头进行滚动 或通过为箭头键设置键绑定 将视口移动一个增量 暂停 然后平滑滚动 我遇到的大多数滚动条的行为都是一样的 有轻微的移动 暂停 然后更快地连续滚动 有什么方法可以避免暂停 以便滚动从开始到结束
  • C 中的重音/元音字符?

    我刚刚学习 C 语言 并接到了一项作业 要求我们将纯文本翻译成莫尔斯电码 然后再翻译回来 我最熟悉 Java 所以请耐心等待我使用的术语 为此 我有一个包含所有字母字符串的数组 char letters etc 我编写了一个函数来返回所需字
  • Python Discord.py `time.sleep()` 协程

    import discord import os import random import time import math client discord Client with open admins conf r as f for li
  • 反应本机无法读取 null 的属性“绑定”

    我尝试运行一个反应本机模拟器 然而 在模拟器中却出现了这个错误 Failed to load bundle http localhost 8081 index bundle platform ios dev true minify fals
  • javascript CORS onerror 处理程序

    背景 几年前 有一个问题onerror处理程序和跨源脚本标签 更多相关信息 http jeremiahgrossman blogspot com 2006 12 i know if youre logged in anywhere html
  • 如何获取被点击元素的类?

    我不知道如何获得class单击的元素的值 当我使用下面的代码时 我得到 node 205 每次 jQuery find gt ul tabs selectedClass active select function event ui sho
  • EXC_BAD_ACCESS 当我关闭窗口时,这也是我的应用程序的委托

    我写了一个 Cocoa 应用程序 然后我得到了EXC BAD ACCESS当我关闭应用程序窗口时出错 我读到这个错误通常意味着内存问题 但我有ARC mode上 我不需要关心释放等 xCode 禁止我调用此函数并自动管理内存 错误指向行re
  • Django 单元测试缺少数据库列

    我在 Django 上创建了一个单元测试来创建用户帐户并发送验证电子邮件 用户已创建 但电子邮件发送失败 电子邮件的默认内容应该在创建用户时创建为用户中的一个字段 但由于某种原因 Django 声称 DatabaseError no suc
  • Iconv:带有 ASCII//IGNORE 的 EILSEQ,但不带有 ASCII//TRANSLIT//IGNORE

    使用 iconv 与 TRANSLIT IGNORE从 utf8 转换为 ascii 效果很好 它根据当前语言环境将不可转换的字符替换为正确的音译 在我的例子中为 de DE gt echo m p iconv f UTF8 t ASCII