`

使用Iconv将UTF-8转换成ASCII(on Linux)

阅读更多
Hooopo老大已经有一篇UTF8编码和正则表达式,所以,有看这篇需求的,上面的也可能用到。

正文:

    在一些特别的需求下,我们需要放弃UTF-8的好处而转换格式到ASCII,通常在处理遗留系统的时候,会遇到这样的问题。那么,下面是解决的办法:

例如,想要把如下字符转换成ASCII
引用
çéß


转换成
引用
cess

实际上在MAC的系统上,我们可以简单的通过下面的脚本进行转换。
s = "çéß"
s = Iconv.iconv('ascii//translit', 'utf-8', s).to_s # returns "c'ess"
s.gsub(/\W/, '') # return "cess"

  
     实现很容易,效果也不错,可是,当要在Debian或者其他Linux系统下使用是,往往会遇到下面的invalid characters错误提示:
Iconv::InvalidCharacter: "\351?"#错误提示
        from (irb):7:in `iconv'
        from (irb):7
        from (irb):6:in `collect'
        from (irb):6
        from :0

实际上,出现上面错误的原因是,MAC已经内置了unicode的支持,而Linux下没有。那么,我们需要的是首先,安装Unicode支持。
如下:
sudo apt-get install unicode


这样就可以执行转换了。


那么,如果是需要转换一个句子呢,那么只要稍微的转换就可以达到目的:
words = s.split(" ")
words = words.collect do |word|
    word = Iconv.iconv('ascii//translit', 'utf-8', word).to_s
    word = word.gsub(/\W/,'')
end
words.join(" ")
分享到:
评论

相关推荐

    c++ UTF-8 UTF-16转换

    UTF-8是一种变长的字符编码,它使用1到4个字节来表示一个Unicode字符,其中ASCII字符(0-127)只需要1个字节。UTF-16则通常使用2个字节,对于大部分的Unicode字符,但对超出基本多文种平面(BMP)的字符,如表情符号...

    ASCII 及UTF-8 与字符互相转换

    另一方面,如果你有ASCII编码的文本,但需要在支持多语言的环境中使用,可能需要将其转换为UTF-8。这可以通过编程语言中的函数或工具来实现,例如Python的`codecs`库中的`encode`和`decode`方法,或者使用命令行工具...

    utf-8.rar_c++ string utf-8_string to utf-8_utf_utf 8_utf-8

    然而,如果你从其他编码格式(如ASCII或GBK)转换到UTF-8,就需要使用编码转换函数。例如,可以使用iconv库进行这样的转换。 在处理UTF-8字符串时,常见的操作包括: 1. **字符遍历**:由于UTF-8的多字节特性,...

    pb12 gb转utf-8

    转换“pb12 gb转utf-8”意味着你可能有一个使用PowerBuilder 12编写的程序或数据库,其中的数据是以GBK编码存储的,现在需要将这些数据转换为UTF-8编码以便在更广泛的环境中使用或与其他系统进行兼容。 这个过程...

    Node.js-iconv-lite-纯javascript转换字符编码

    // 使用iconv-lite进行GBK到UTF-8的转换 const utf8String = iconv.decode(gbkBuffer, 'GBK'); console.log(utf8String); // 输出转换后的UTF-8字符串 // 反向操作,将UTF-8字符串转换为GBK编码的Buffer const ...

    C语言字符编码转换UNICODE、GBK、UTF-8互相转换

    在这个主题中,我们将深入探讨如何在C语言中进行UNICODE、GBK和UTF-8之间的转换。 UNICODE,也称为Unicode Transformation Format(UTF),是一种标准的字符编码,旨在表示世界上所有语言的每一个字符。它使用数字...

    UTF-8与GB与 Big5之间的转换

    UTF-8、GBK(或GB2312)以及Big5都是广泛使用的字符编码标准,它们各有特点,适用于不同的应用场景。 UTF-8是一种变长的Unicode编码方式,它可以表示世界上几乎所有的字符。UTF-8最大的优点在于其兼容性,它在...

    Keil5中UTF-8转换脚本

    这段脚本将UTF-8编码的`sourcefile.c`转换为ASCII编码,并替换原文件。 4. **集成到Keil5**:将此脚本集成到Keil5的构建系统中。在项目设置的"Build Settings"中,添加一个“PreProcessor Command”,指定运行脚本...

    windows下利用libiconv将实现utf8和gbk编码之间转换

    libiconv是一个广泛使用的字符编码转换工具,它支持多种编码格式,包括UTF-8和GBK。 UTF-8是一种变长的Unicode编码方式,每个Unicode字符可以被表示为1到4个字节。GBK,全称为“国标汉字扩展A区”,是中国大陆广泛...

    GBK 与 UTF-8 间编码转换

    对于GBK到UTF-8的转换,首先需要将GBK编码的每个双字节视为一个独立的字符,然后查找对应的Unicode码点,最后按照UTF-8的规则将其转换成1至3个字节的序列。相反,从UTF-8到GBK的转换则需要识别出UTF-8编码的字节序列...

    批量utf文件转utf8-bom

    "批量utf文件转utf8-bom"这个主题指的是将一批以UTF编码的文件转换为带有BOM(Byte Order Mark)的UTF-8编码。BOM是一个特殊的字节序列,用于标识文件的编码类型,对于UTF-8编码,BOM的字节序列为0xEF, 0xBB, 0xBF。...

    windows下ascii unicode utf8 相互转换

    例如,将一个UTF-8编码的文本文件转换为ASCII编码: ``` iconv -f utf-8 -t ascii input.txt > output.txt ``` 3. 使用第三方工具:还有一些专门的编码转换软件,如“File Encoding Converter”等,提供了图形...

    文件编码转换,GBK和UTF-8双向互换,批处理文化方法

    文件包含:gbk2utf-8.bat、utf-82gbk.bat、iconv.exe及使用说明.txt四个文件 使用说明:1把要转换的所有.h和.c文件拷入该目录下,双击相应的bat文件即可。 2转换结果会保存在utf-8Res或gbkRes目录下。 3如果转换除...

    Txt批量转UTF-8的工具

    本文将详细讨论“TXT批量转UTF-8的工具”这一主题,解释TXT文本文件的ANSI格式和UTF-8格式之间的差异,并介绍如何使用批处理脚本来实现转换。 首先,我们来理解TXT文件的两种编码格式:ANSI和UTF-8。 1. ANSI编码...

    iconv-文件编码转换

    例如,如果有一个使用 GBK 编码的文本文件 `chinese.txt`,想要将其转换为 UTF-8 编码,可以运行以下命令: ```bash iconv -f GBK -t UTF-8 chinese.txt > converted_chinese.txt ``` ### iconv 的其他选项 除了...

    iconv.rar - 编码转换工具

    例如,要将一个名为“example.txt”的GBK编码文件转换为UTF-8编码,可以运行`iconv -f GBK -t UTF-8 example.txt > example_utf8.txt`。如果源文件和目标文件在同一目录下,且希望覆盖原文件,可以省略输出文件名。 ...

    c语言gbk、utf8转换编码表及函数

    - 反之,从UTF-8转GBK则需要解析UTF-8编码的字节序列,找到对应的Unicode码点,再转换成GBK编码。 5. **转换函数示例** - `gbk_to_utf8()`函数可能接收GBK编码的字符串作为输入,返回转换后的UTF-8编码字符串。 ...

    如何将文本转换为UTF-8码 .e.rar

    - **Linux/Mac**:使用`iconv`命令,例如`iconv -f GBK -t UTF-8 原文件.txt -o 新文件.txt`。 - **Windows**:可以使用`chardet`或`iconv`的Windows版本进行转换,类似命令行操作。 4. **编程语言转换**: - **...

    UTF-8_GB2312-Src

    当用户需要将从三星手机导出的UTF-8格式VCF文件在其他不支持UTF-8的设备上使用时,如旧款手机或某些特定软件,可能就会遇到无法正确显示中文字符的问题。此时,就需要进行编码转换。 "UTF-8_GB2312-Src"提供的工具...

    bat脚本将csv格式UTF-8批量转ANSI

    在IT行业中,我们经常需要处理各种格式的文件,其中CSV(Comma ...在这个案例中,通过编写和使用批处理脚本,我们可以轻松地将CSV文件从UTF-8批量转换为ANSI编码,从而解决在Excel中打开时可能出现的中文乱码问题。

Global site tag (gtag.js) - Google Analytics