技术标签: linux 文件转换ascii
我正在尝试将一堆A文件从ASCII转换成UTF-8。
为此,我尝试使用iconv:
iconv -f US-ASCII -t UTF-8 infile > outfile
-f ENCODING输入的编码
-t ENCODING输出的编码
但那个文件没有转换成UTF-8。这是一个.dat文件。
在发布这篇文章之前,我搜索了谷歌并找到了如下信息:
ASCII is a subset of UTF-8, so all ASCII files are already UTF-8 encoded. The bytes in the ASCII file and the bytes that would result from"encoding it to UTF-8" would be exactly the same bytes. There's no difference between them.
强制从US-ASCII编码到UTF-8(ICONV)
在字符集之间转换文本文件的最佳方法?
但是上面的链接没有帮助。
尽管它是ASCII格式的,但它将支持UTF-8,因为UTF-8是一个超级集,从我这里接收文件的另一方需要文件编码为UTF-8。他只需要UTF-8格式的文件。
有什么建议吗?
一点也不清楚问题是什么——只要给那个人原始的ASCII文件就行了。如果它们是真正的ASCII码,那么它们已经是UTF-8码了,所以应该没问题。到底怎么了?
@另一方jon skeet希望文件格式为utf-8,当我尝试使用命令文件-i outfile时,它返回的是ascii,但他们严格要求它为utf-8。即使ASCII是UTF-8的子集。
如果它是真正的ASCII码,那么它是"严格的UTF-8"。根据你的评论,如果对方因为file的输出而拒绝使用ASCII文件,这听起来就好像对方基本上已经崩溃了。他们应该接受ASCII文件是UTF-8文件,然后继续处理它。
@在没有其他细节的情况下,我倾向于同意。建议和鼓励他们接受来自"文件"的两个回复可能是值得的。他们的API将更加灵活和健壮,他们将避免自己不得不与使用它的其他人反复讨论这个问题。如果他们不能或不愿意这样做,那么在他们的文档中至少有一个非常明确的声明,即输入文件中需要BOM,使用这种精确的语言,也可能会有很长的路要走。
我对这个问题有点困惑,因为正如您所指出的,ASCII是UTF-8的一个子集,所以所有的ASCII文件都已经是UTF-8编码的。
如果您正在向另一方发送只包含ASCII字符的文件,但另一方抱怨它们不是"UTF-8编码的",那么我猜它们是指ASCII文件没有明确指示内容是UTF-8的字节顺序标记这一事实。
如果确实如此,那么可以使用下面的答案添加字节顺序标记:
ICONV:使用BOM从Windows ANSI转换为UTF-8
如果另一方表示不需要"bom"(字节顺序标记),但仍在抱怨文件不是utf-8,则另一种可能是初始文件实际上不是ASCII,而是包含使用ANSI或ISO-8859-1编码的字符。
在RAM对使用"file"命令查找类型的另一方作出评论后,编辑以添加以下实验
Tims-MacBook-Pro:~ tjohns$ echo 'Stuff' > deleteme
Tims-MacBook-Pro:~ tjohns$ cat deleteme
Stuff
Tims-MacBook-Pro:~ tjohns$ file -I deleteme
deleteme: text/plain; charset=us-ascii
Tims-MacBook-Pro:~ tjohns$ echo -ne '\xEF\xBB\xBF' > deleteme
Tims-MacBook-Pro:~ tjohns$ echo 'Stuff' >> deleteme
Tims-MacBook-Pro:~ tjohns$ cat deleteme
Stuff
Tims-MacBook-Pro:~ tjohns$ file -I deleteme
deleteme: text/plain; charset=utf-8
提摩西·约翰斯谢谢你的解释。其他缔约方使用文件格式检查文件——我将文件输入ASCII,因为它们像UTF-8一样需要进一步处理。
@Ram in that case I'm about 98%certain the other party is looking for the Byte order Mark.On Mac Os file will output"text/plain;charset=UTF-8"if it's there,and"text/plain;charset=US-ASCII"if it's not.我会编辑答案,以增加一个实验。
[email protected] Johns I was working in Linux Environment.他们为UTF-8提出的理由是,他们希望得到更多的特征支持,而这些特征在美国信息交换标准码中是不可用的。Please note that all this is to process the data in hadoop(data world).
提摩西·约翰斯谢谢你的输入。我试着使用下面的命令并将它转换为UTF-8格式的ASCII文件。输出文件;当我给ASCII输入文件时,它是返回我UTF-8输出文件。
// Python.cpp : Defines the entry point for the console application.//#include "Python.h"int main(){Py_Initialize();if(!Py_IsInitialized())return -1;PyRun_SimpleString("print '路径测试!'/n");PyRun_SimpleS...
最近在写支付 , 遇到了一些支付宝的坑,这里也记录分享一下首先必须在蚂蚁金服上面有一个应用 , 并且把商户私钥 , 支付宝公钥等都设置好然后下载支付宝php的SDK , 链接如下https://docs.open.alipay.com/270/106291/我用的是TP5框架这里把SDK下好解压之后放到TP的extend目录下首先我们需要在自己的数据库中保存以下内容 : 1 2 3 4 5 1.subject...
作者简介:柳田理科雄,1961年生,是看着特摄和卡通长大的一代。从高中就立志当科学家,后来从东大理科中退,在补习班担任教师,育有一子。出版本书时,同时创设“空想科学研究所”,看得出来此人是个严重的动漫中毒者。第一章 超人奥特曼体重之谜? 本节所引用的超人奥特曼与怪兽的身高、体重等数据是圆谷公司的设定,同时也来看看这种设定将造成什么“笑”果…… 首先,超人奥特曼(初代)的身高是四
http://developer.android.com/training/material/theme.htmlMaterial主题带来的效果体现在以下几个方面:System widgets that let you set their color palette(调色板)系统控件(部件)的触屏反馈动画Activity跳转动画可以在app中对color palet
综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation近期主要在学习语义分割相关方法,计划将arXiv上的这篇综述好好翻译下,目前已完成了一部分,但仅仅是尊重原文的直译,后续将继续完成剩余的部分,并对文中提及的多个方法给出自己的理解。论文地址:https://arxiv.org/abs/1704...
近日,谷歌官方公布了8月份的安卓市场份额报告。根据最新的资料显示,目前市面上大部分的安卓手机,仍然搭载Android 6.0系统(棉花糖),市场占有率比上月略有提升,达到32.3%。排名第二的是Android 5.0和Android 5.1(棒棒糖),市场占有率为29.2%。Android 7.0以后的版本(牛轧糖)的市场占有率有所增加,达到13.5%。令人意外的是,现在还有不到10%的安卓...
首先安装mysql一般情况下我们都喜欢把一些额外的软件或者是大型的应用程序放在/opt目录下,当然放在/usr/local/里也是一样的,或许更多人习惯这么做,但在这里我们还是把mysql安装在/opt目录里。#mkdir /opt/software#adduser king#passwd king#mount /dev/cdrom /mnt /* 获得mysq...
从素材图可以很清楚的看到,要修复照片需要两个过程:首先需要把撕裂的照片完整的拼合起来。然后就是把照片中的裂纹,瑕疵等修复好。过程虽然简单,不过要修复的东西比较多,需要花费一点的时间。最终效果原图一、这就是原图,我们可以看到图中缺失的部分比较多,被分成了四片。二、使用套索工具选定4块残片,然后分别建立图层,然后隐藏原图层(就是背景图层)。三、然后给每个图层添加矢量蒙版,用23px粉笔笔刷覆盖各个”碎...
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更
Unity 打包发布AndroidUnity 打包APK新手教学
练习7-1#include <stdio.h>int main(void){ int n; printf("sizeof 1 =%u\n", sizeof 1); //1是int型,该类型的长度是4 printf("sizeof +1 =%u\n", sizeof + 1); //+1是int型,该类型的长度是4 printf("sizeof -1 =%u\n", sizeof - 1);
Python和Java哪个更适合做自动化测试?这是很多测试工程师从功能跨入自动化纠结的问题,今天测试老鸟来带大家详细分析一下!写给还在迷茫中的朋友!首先可以确认的是提出这个问题的肯定是一个菜鸟,因为用Python的只觉得Python好,用Java的只觉得Java好!Java和Python一直都是两种很火很强大的编程语言,作为一名Java程序员,肯定会建议你先学Java,然后再学Python,但如果你问一个Python程序员,可能会得到完全相反的答案。对于初学者,选择一种具有吸引力的,同时有着强大社区支.