Linux 转换文字编码与换行符 nkf命令

参考资料

  1. 【 nkf 】コマンド――文字コードと改行コードを変換する
  2. nkfコマンドでファイルの文字コードと改行コードを統一する

目录

  • 一. 前期准备
  • 二. 乱码现象与分析
  • 三. nkf命令
    • 3.1 nkf --guess 查看文件编码
    • 3.2 nkf -w8 UTF-8(BOM)编码显示
    • 3.3 nkf -wd --overwrite 覆盖源文件


一. 前期准备

⏹有如下文件,business-content-1.csv

業務,時間,会社,コスト
販売,2025,JMW会社,1000円
中古,2024,清掃会社,2000円
看病,2023,病院小林,1566円
ゴミ回収,2025,長野県回収,7853円
テレビ改装,2589,東京都テレビ,4454152円

⏹由下图可见

  • 该csv文件的编码为:Shift-JIS
  • 换行符为:LF

在这里插入图片描述


二. 乱码现象与分析

😵我们直接使用cat命令打开文件的话,可以看到终端窗口出现了乱码。

在这里插入图片描述
🤔我们使用的是Tera Term连接工具,默认编码为UTF-8格式,而csv文本为Shift-JIS格式,所以出现了乱码。

🤪若我们将终端的显示编码改为Shift-JIS格式之后,再次cat,可以看到文件显示正常。

在这里插入图片描述

在这里插入图片描述

😒若不允许修改终端显示code?使用nkf命令即可解决此问题。


三. nkf命令

nkf(Network Kanji Filter)命令,是Linux和其他类Unix操作系统中的一个命令行工具,用于进行字符编码转换。它主要用于在不同字符编码之间转换文本,以及进行换行符的转换。

⏹输出配置项

短配置项長配置项意味
-j--jisJISコードを出力する(デフォルト)
-e--eucEUCコードを出力する
-s--sjisシフトJISコードを出力する
-w,-w80UTF-8コードを出力する(BOMなし)
-w8UTF-8コードを出力する(BOM有り)
-w16,-w16B0UTF-16コードを出力する(ビッグエンディアン/BOMなし)
-w16BUTF-16コードを出力する(ビッグエンディアン/BOM有り)
-w16LUTF-16コードを出力する(リトルエンディアン/BOM有り)
-w16L0UTF-16コードを出力する(リトルエンディアン/BOMなし)
-IISO-2022-JP以外の漢字コードを「(げた記号)」に変換する
--oc 文字コード出力する文字コードを「EUC-JP」や「UTF-8」などで指定する
--overwriteファイルを変換して上書きする

⏹换行符配置项

短配置项長配置项意味
-d,-Lu改行をLFにする(UNIX系)
-c,-Lw改行をCRLFにする(Windows系)
-Lm改行をCRにする(OS Xより前のmac OS系)

3.1 nkf --guess 查看文件编码

nkf --guess ./business-content-1.csv
# Shift_JIS (LF)

3.2 nkf -w8 UTF-8(BOM)编码显示

  • 显示前3行
  • 使用utf-8编码显示
cat ./business-content-1.csv | head -3 | nkf -w8
head -3 ./business-content-1.csv | nkf -w8
業務,時間,会社,コスト
販売,2025,JMW会社,1000円
中古,2024,清掃会社,2000円

3.3 nkf -wd --overwrite 覆盖源文件

  • w:使用UTF-8(无BOM)模式编码
  • w8:使用UTF-8(有BOM)模式编码
  • d:将换行符改为 LF

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319704.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于CodeReview的一些实践和思考

在日常开发中,Code Review 的重要性日益凸显。它不仅有助于提升代码质量,还促进了团队成员之间的知识共享和技能提升。本文将主要聚焦于 Code Review,分享在这个过程中的一些心得和思考。 CodeReview常用到的一些术语 之前看到公司的大佬经…

项目进度管理

7过程 计划过程组6项:规划进度管理,定义活动,排列活动顺序,估算活动资源,估算活动持续时间,制定进度计划, 监控过程组1项:控制进度 1、规划进度管理, 对项目过程中管理…

Webpack模块打包工具

目录 Webpack模块打包工具知识点自测01.Webpack 简介以及体验目标讲解小结 02.Webpack 修改入口和出口目标讲解小结 03.案例-用户登录-长度判断目标讲解小结 04.Webpack 自动生成 html 文件目标讲解小结 05.Webpack-打包 css 代码目标讲解小结 06.优化-提取 css 代码目标讲解小…

C++学习笔记——继承和动态内存分配

目录 一、继承 二、动态内存分配 三、继承的细节 四、动态内存分配细节 五、一个动物园管理系统 继承和动态内存分配是C中两个重要的概念 一、继承 继承是C中面向对象编程的一个重要特性,它允许我们创建一个新类,该类从现有的类中继承属性和方法&…

设置ubuntu命令行样式

目录 一、脚本 二、含义 三、颜色设置 四、展示 五、注意 上次为了学习ros安装了一个22.04并且做了简单的配置,这次我们进一步对命令行样式进行配置 ubuntu22.04安装与配置_ubuntu22.04硬件配置-CSDN博客 一、脚本 这是他的默认配置,太长了&#x…

Python--循环语句

在 Python 中,循环语句用于重复执行一段代码多次。Python 主要提供了两种类型的循环:for 循环和 while 循环。 1. for 循环 for 循环用于遍历可迭代对象(如列表、元组、字典、字符串等)中的每个元素,并对每个元素执行…

【每日一题】构造限制重复的字符串

文章目录 Tag题目来源解题思路方法一:贪心空间复杂度: O ( ∑ ) O(\sum) O(∑)。 写在最后 Tag 【贪心】【字符串】【2024-01-13】 题目来源 2182. 构造限制重复的字符串 解题思路 方法一:贪心 思路 解题思想比较简单,利用贪…

C++进阶--红黑树

红黑树 一、红黑树的概念二、红黑树的性质三、红黑树结点的定义四、红黑树的插入五、红黑树的验证七、红黑树的查找七、红黑树与AVL树的比较七、完整代码RBTree.h 一、红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色…

IaC基础设施即代码:使用Terraform 连接 alicloud阿里云

目录 一、实验 1.环境 2.alicloud阿里云创建用户 3.Linux使用Terraform 连接 alicloud 4.Windows使用Terraform 连接 alicloud 二、问题 1.Windows如何申明RAM 相关变量 2.Linux如何申明RAM 相关变量 3. Linux terraform 初始化失败 4.Linux terraform 计划与预览失败…

关于高通Android 平台上qssi的介绍

1. QSSI 是 Qualcomm Single System Image 的缩写。 2. Android Q上开始支持QSSI。 3. QSSI 是用来编译system.img的 3.1 QSSI编译注意事项 lunch qssi ------ 编译system.img lunch target ------ 编译其余的image 3.2 有QSSI和没有QSSI的编译流程对比 没有QS…

YOLOv5独家原创改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

💡💡💡本文独家改进:多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat; 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡�…

Docker运行RabbitMQ并使用SpringAMQP操作

文章目录 一、RabbitMQ运行二、整合SpringAMQP1. 引入依赖 三、测试1. 消费者2. 生产者3. 运行 一、RabbitMQ运行 拉取docker镜像 docker pull rabbitmq:3-management基础运行命令 docker run \-e RABBITMQ_DEFAULT_USERrabbitmq \-e RABBITMQ_DEFAULT_PASSrabbitmq \--name…

Vue3 如何使用移动端调试工具vConsole

1、安装 pnpm i vconsole2、在src/utils下新建vconsole.ts,写入以下代码 // 这是移动端控制台调试工具,需要调试就打开,不用就注释 import vConsole from vconsole const vconsole new vConsole()3、src/main.ts 引入,需要调试就打开,&…

数据结构学习之链式栈应用的案例(最小栈)

实例要求: 设计一个支持入栈、出栈、取栈顶元素等操作,并能在常数时间内检索到最小元素的栈; 实现 MinStack 类: MinStack* minStackCreate() 初始化堆栈对象,即建栈; void minStackPush(MinStack* obj, int val) …

DICE模型的原理与推导、碳循环与气候变化、政策评估、不确定性分析与代码分析

目录 专题一:DICE模型的原理与推导 专题二:碳循环与气候变化 专题三:政策评估 专题四:不确定性分析与代码分析 更多应用 随着温室气体排放量的增大和温室效应的增强,全球气候变化问题受到日益的关注。我国政府庄严…

Linux驱动学习—IIC总线之FT5X06触摸驱动实验

1、实现触摸坐标值上报 流程图&#xff1a; 设备树如下&#xff1a; 触摸设备对应的设备树节点是&#xff1a; 读取坐标的寄存器&#xff1a; #include <linux/init.h> #include <linux/module.h> #include <linux/i2c.h> #include <linux/gpio.h> #i…

【排序篇3】快速排序、归并排序

目录 一、快速排序1.1 递归1.2 非递归 二、归并排序2.1 递归2.2 非递归 一、快速排序 1.1 递归 快速排序的递归采用二叉树的前序遍历的思路&#xff0c;单趟排序先确定好一个元素的位置&#xff0c;然后往后递归再确定其他子区域内的某个元素的位置&#xff0c;直到只有一个元…

隧道应用4-内网穿透EW的简单使用

与netsh端口映射内网类似&#xff0c;也是通过跳板机实现 EW官网地址&#xff1a;http://rootkiter.com/EarthWorm EW 是一套便携式的网络穿透工具&#xff0c;具有 SOCKS v5服务架设和端口转发两大核心功能&#xff0c;可在复杂网络环境下完成网络穿透。 注&#xff1a; 考虑…

【洛谷千题详解】P7072 [CSP-J2020] 直播获奖

输入样例&#xff1a; 10 60 200 300 400 500 600 600 0 300 200 100 输出样例&#xff1a; 200 300 400 400 400 500 400 400 300 300 #include<bits/stdc.h> using namespace std; int main() {int n,w,s,a[605]{0};cin>>n>>w;for(int i1;i<n;i){sca…

P1179 [NOIP2010 普及组] 数字统计————C++

目录 [NOIP2010 普及组] 数字统计题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 解题思路Code1Code2运行结果 [NOIP2010 普及组] 数字统计 题目描述 请统计某个给定范围 [ L , R ] [L, R] [L,R] 的所有整数中&#xff0c;数字…