Linux-各种姿势(less\vi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题
(一)linux各种中文乱码解决办法整理
远程登录服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题。
做如下设置可基本解决vim中文乱码问题,首先查看系统对中文的支持locale -a | grep zh_CN输出样例,如下zh_CN.gbkzh_CN.utf8vim 只能正确识别列表中的中文编码文件,如需识别其他编码类型的中文文件,则需要做系统升级vi ~/.bash_profile文件末尾添加export LANG="zh_CN.UTF-8"export LC_ALL="zh_CN.UTF-8"
vim与编码相关的参数:
fileencoding,用于配置打开文件和保存文件的编码,但只能有一个值,只适合少数文件都是同种编码的环境,所以一般不使用fileencodings, 从名字上看就知道是fileencoding的增强版,可以配置多种不同的编码,常见的配置为,配置好之后,列表中的文本编码只要合法,都能被vim正确 的读取,建议配置:set fileencodings=utf-bom,utf-8,gbk,gb2312,gb18030,cp936,latin1encoding,vim内部编码,vim读取文件之后,但并不以读取文件的编码来处理,而是会转换成内部编码的格式,这个编码一般与操作系统相关,linux下utf-8居多,中文windows下则是gdk,建议配置:set encoding=utf-8 termencoding,vim输出的编码,输出指输出到操作系统或命令终端等,默认与操作系统的语言编码一致,如果使用linux命令终端,建议终端和linux系统配置相同的编码,然后配置相同的termencoding,否则顾全了vim就顾不上shell,不过如果shell不存在中文名文件,则配置终端和 termencoding一致即可,对于windows,能自动的识别gbk和utf-8,不用特殊配置,建议配置:set termencoding=utf-8fileformats,用于区分操作系统,主要是回车\r\n的区别,建议配置:set fileformats=unix,dos
常见的乱码有以下几种情形:
(1)将windows环境下的文件rz到linux下时文件出现乱码
解决方案:
1.在rz之前使用notepad++将文件格式转化为UTF-8无BOM格式或者ANSI编码格式;
2.set encoding=utf-8;
(2)secureCRT或者xterm2编辑环境中出现乱码,只需在会话选项中调节字符编码为GB2312或者UTF-8
(3)当对日志文件进行vim编辑时出现乱码,大多数情况下是因为日志文件的格式为GB2312。
解决方案:
1.set encoding=GB2312;
2如果方案1不起作用的话,调整secureCRT或者xterm2的编辑环境为GB2312
(4)wget下载文件名乱码
解决方案:
一般情况下加上–restrict-file-names=nocontrol,例如wget --restrict-file-names=nocontrol -m www.xxx.com/
(5)cat文件正常,vim文件不正常 解决方案:直接写入/etc/vim/vimrc ,最后一行加上set fileencodings=gb2312,utf-8 set fileencoding=gb2312 set termencoding=utf-8 批量文件转码命令:iconv -c -f gbk -t utf-8 $data_path/$item_uv
参考:https://blog.csdn.net/kwame211/article/details/77069378
(二)xls/xlxs/txt/等一切非gbk文件另存为.csv(gbk编码格式文件)文件,再把.csv文件编码格式转化为utf-8文件,这样Linux才能查看less查看而不乱码;
(三)可以直接保存为utf-8编码格式文件,如
excel怎么保存为utf8编码格式
参考:https://jingyan.baidu.com/article/63f236289223e00208ab3da4.html
(四)python pandas模块 可以直接读取excel文件,并处理excel文件和对数据的处理分析;所以,相当于间接跳过了Linux less|vim 查看问题,直接进入下一步的数据读取和处理。
Linux-各种姿势(less\vi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题的更多相关文章
- 用Linux命令行实现删除和复制指定类型的文件
(一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...
- Intent MIME 打开各种类型的文件
使用 public class MainActivity extends ListActivity { public static final String path = Environmen ...
- Linux基础-5.利用vi编辑器创建和编辑正文文件
1.vi编辑器简介 1)掌握vi编辑器的定义:vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,vi是效率很高的文本编辑器.尽管在Linux上也有很多图形界面 ...
- Android打开各种类型的文件方法总结
很简单,通过调用系统的intent,我们可以打开各种文件,不熟悉的朋友可以了解下action.datatype.uri的相关知识. 通用方法如下: public static Intent openF ...
- 高速在MyEclipse中打开jsp类型的文件
MyEclipse打开jsp时老是要等上好几秒,嗯嗯,这个问题的确非常烦人,事实上都是MyEclipse的"自作聪明"的结果(它默认用Visual Designer来打开的),进行 ...
- Linux复制指定目录及子目录下特定类型的文件
首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示: 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一 ...
- 关于contentquery webpart的pdf文件如何在OOS上打开,并且所有文件在浏览器新起的页面打开?
function SetHref(pdf) { var c = pdf.href; var d = "http://eds.jd.com"; var f = "" ...
- linux之文本编辑器vi常用命令
由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令 1.打开命令: vi+filename (还有各种打开的姿势,只不过我比较顺手这个) 2.退出命令: :q 退出而 ...
- 10分钟 教你学会Linux/Unix下的vi文本编辑器
10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...
随机推荐
- mysql分表之后怎么平滑上线?
分表的目的 项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询数据变慢,而且由于表的锁机制导致应用操作也受到严重影响,出现了数据库性能瓶颈. 当出现这种情况时,我们可以考虑 ...
- dfs初步模板解析
#include<stdio.h> int a[10],book[10],n; //这里还有需要注意的地方C语言全局变量默认为0 void dfs(int step){ //此时在第ste ...
- TCP/IP参考模型(应用层、传输层、网际层、网络接口层)、五层参考模型(应用层、传输层、网络层、数据链路层、物理层)、OSI与TCP/IP参考模型比较
文章转自:https://blog.csdn.net/weixin_43914604/article/details/104597450 学习课程:<2019王道考研计算机网络> 学习目的 ...
- Python中Numpy及Matplotlib使用
Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...
- Jquery取值方法汇总
一.下拉框 1.jquery获取当前选中select的text值 var a = $("#ShareMoneyType").find("option:selected&q ...
- linux updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
我们想查找我们最新创建的文件时,由于locate的数据库是每天更新.所以我们新创建的文件还没有被更新到系统的数据库. 这是需要手动更新数据库. 然后就可以查到. updatedb 输出 updated ...
- zabbix 报警发送企业威信
1.组册企业微信,创建应用 2.下载脚本文件: https://raw.githubusercontent.com/OneOaaS/weixin-alert/master/weixin_linux_a ...
- 记录一个很傻的错误(C++)
使用的vscode写代码,导入了vector,memory,然后忘了导入string.但是代码中能够提示std::string也就让我忘了导入string.然后就莫名其妙的报错了.找了很久的错.记录下 ...
- springboot入门之版本依赖和自动配置原理
前言 Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that ...
- Matlab+Qt开发笔记(二):Qt打开mat文件显示读取的数据
前言 介绍了基础环境,最终是为了读取显示.mat文件,本篇读取mat文件并显示. 补充 测试的mat文件是double类型的. Matlab库数据类型 变量类型:matError,错误变量 ...