当前位置: 首页 > 面试题库 >

iconv对UTF-8的任何编码

仉峻
2023-03-14
问题内容

我试图将iconv指向目录,并且无论当前编码如何,所有文件都将转换为UTF-8

我正在使用此脚本,但是您必须指定要使用的编码。如何使其自动检测当前编码?

dir_iconv.sh

#!/bin/bash

ICONVBIN='/usr/bin/iconv' # path to iconv binary

if [ $# -lt 3 ]
then
  echo "$0 dir from_charset to_charset"
  exit
fi

for f in $1/*
do
  if test -f $f
  then
    echo -e "\nConverting $f"
    /bin/mv $f $f.old
    $ICONVBIN -f $2 -t $3 $f.old > $f
  else
    echo -e "\nSkipping $f - not a regular file";
  fi
done

终端线

sudo convert/dir_iconv.sh convert/books CURRENT_ENCODING utf8

问题答案:

也许您正在寻找enca

Enca是一位非常幼稚的字符集分析器。它可以检测字符集和文本文件的编码,还可以使用内置转换器或外部库和工具(例如libiconv,librecode或cstocs)将其转换为其他编码。

目前,它独立于语言,支持白俄罗斯语,保加利亚语,克罗地亚语,捷克语,爱沙尼亚语,匈牙利语,拉脱维亚语,立陶宛语,波兰语,俄语,斯洛伐克语,斯洛文尼亚语,乌克兰语,中文以及一些多字节编码。

请注意,通常,自动检测当前编码是一个困难的过程(相同的字节序列可以是多种编码中的正确文本)。enca根据您告诉它要检测的语言使用启发式方法(以限制编码的数量)。您可以enconv用来将文本文件转换为单一编码。



 类似资料:
  • 我正在尝试使用iconv将UTF-16BE编码文件(字节顺序标记:0xFE 0xFF)转换为UTF-8,如下所示: 然而,结果输出具有UTF-8字节顺序标记(0xEF 0xBB 0xBF),这不是我需要的。有没有办法告诉iconv(或者有等效的编码)不要在UTF-8结果中放入BOM?

  • 问题内容: 我想从请求中获取参数(带有重音符的字符),但是它不起作用。我尝试使用,但也没有用。 我知道返回正确的字符,但不起作用! 有人有主意吗? 问题答案: Paul的建议似乎是最好的做法,但如果要解决此问题,则根本不需要URLEncoder或URLDecoder: 更新: 由于获得了很多选票,我想强调BalusC的观点,即这绝对不是解决方案。充其量是一种解决方法。人们不应该这样做。 我不知道是

  • 问题内容: 我正在用python做一些脚本。我创建一个保存在文件中的字符串。这个字符串有很多数据,来自目录的树状结构和文件名。根据convmv的介绍,我所有的树状结构都是UTF-8。 我想将所有内容都保留在UTF-8中,因为之后我将其保存在MySQL中。现在,在UTF-8的MySQL中,我遇到了一些字符问题(例如é或è-我是法语)。 我希望python始终将字符串用作UTF-8。我在互联网上阅读了

  • 本章是由 Alex Cabal 最初撰写在 PHP Best Practices 中的,我们使用它作为进行建议的基础。 这不是在开玩笑。请小心、仔细并且前后一致地处理它。 目前,PHP 仍未在底层实现对 Unicode 的支持。虽然有很多途径可以确保 UTF-8 字符串能够被正确地处理,但这并不是很简单的事情,通常需要对 Web 应用进行全方面的检查,从 HTML 到 SQL 再到 PHP。我们将

  • 问题内容: 目前,我正在尝试开始使用Spring MVC。在尝试时,我遇到了编码问题。 我想在我的JSP页面上显示UTF-8字符,所以我在ModelAndView中添加了一个带有UTF-8字符的字符串。看起来像这样: 在JSP页面上,我只想显示具有UTF-8字符的字符串,如下所示: 结果,我得到以下结果: 请注意,下面的代码显示没有编码错误。我还在Springsource Tool Suite中将

  • 问题内容: 我试图在Go中找到以下C#代码的等效项。 我知道Go 中有一个crypto / sha1软件包。我知道我可以跑步: 我不确定散列时如何获得正确的编码。我想知道是否可以得到一些帮助来转换此 问题答案: 根据文档: 缺少字节级转义的字符串文字始终包含有效的UTF-8序列。 因此,如果在Golang源代码中,则无需将字符串编码为utf8。但是,如果字符串来自输入,则utf8包是您的朋友。