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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL核心SQL

一.结构化查询语言 SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别: DDL(Data Definition Languages)语句 数据定义语言,这…

C#无标题栏窗体拖动代码

文章目录 一、概念二、案例三、常见问题四、链接 一、概念 C#(C Sharp)是由微软公司开发的一种面向对象的编程语言。它是从C和C语言演化而来的,并结合了Java和其他编程语言的特性。C#是微软.NET平台的一部分,允许开发人员创建各种…

EMC VNXe / Unity存储系统如何找回密码

开始之前,先简单说说,EMC的VNXe存储之间的关系。 EMC的VNXe和Unity存储的操作系统OS是一样的,当然不是完全一样,但是架构是一样的,先推出的产品是VNXe,然后在这个基础上演进到了Unity,Unity XT…

港大谷歌提出GO-NeRF:在NeRF中生成协调且高质量的3D对象

尽管在3D生成方面取得了进展,但在作为NeRF表示的现有3D场景中直接创建3D对象仍然是未经探索的。这个过程不仅需要高质量的3D对象生成,还需要将生成的3D内容无缝地合成到现有的NeRF中。为此,作者提出了一种新方法,GO-NeRF&#xff…

电脑定时关机应用

这是一个Python应用。家里卧室装了新电视,HDMI连接笔记本追剧还是很愉快的。可是经常睡着,自然忘了关机。搜了一大圈,都是用命令行或者bat解决。商店里的应用也不好用,有些还收费。于是萌生了自己写一个定时关机应用的想法。利用N…

监控平台zabbix介绍与部署

1. 完整的项目 业务架构:客户端 -> 防火墙 -> 负载均衡(四层、七层)-> Web缓存/应用 -> 业务逻辑(动态应用)-> 数据缓存 -> 数据持久 运维架构:运维客户端 -> 堡垒机/跳板机&#x…

TLC Nand Flash 存储单元的读取原理

我们知道Nand Flash使用浮栅晶体管作为存储单元(memory cell)来存储数据,浮栅晶体管物理结构如图1所示: 图1 浮栅晶体管 对于普通的晶体管(去掉浮栅晶体管中的浮栅层,floating gate)&#xff0…

基于Docker的Nginx的安装与配置

基于Docker的Nginx的安装与配置 1 为Nginx创建一个容器1.1 学习docker run1.2 通过docker run为Nginx创建并启动一个容器 2 配置Nginx2.1 学习docker的bind mount技术2.2 在Nginx容器中找到想修改的文件所在的目录2.2.1 认识nginx.conf文件2.2.2 访问Nginx服务,默认…

【MATLAB】VMD_LSTM神经网络时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 变分模态分解(Variational Mode Decomposition,VMD)和LSTM(Long Short-Term Memory)神经网络结合的算法是一种用于处理时间序列…

超详细的嵌入式cJSON使用注意事项,持续补充中......

文章目录 一、堆内存不足1.1 问题描述1.2 解决办法 二、内存泄露2.1 忘记Delete2.2 忘记Free2.3 串口数据接收缺少部分字符导致的内存泄露(自己的问题)问题分析 2.4 内存泄露在Cortex-M3内核会发生什么? cJSON开源库地址: cJSON 一、堆内存不足 1.1 问…

ssm基于Web的课堂管理系统设计与实现论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

【GitHub项目推荐--开源的坦克大战】【转载】

坦克大战当年红遍大江南北,很多和我一样的九零后应该都有着对这个游戏的记忆。现在显示器分辨率越来越高,使用矢量图来实现像素风格游戏,可以获得非常高的展现质量。 这个项目是作者肥超花了很长时间折腾的复刻版本,所有元素都使…

余弦相似度的计算以及公式

公式: 思想:余弦相似度的思想是通过计算两个向量之间的余弦值来衡量它们的相似程度。如果两个向量之间的夹角越小,它们的余弦值就越接近1,也就意味着它们越相似。而如果它们的夹角越大,余弦值就越接近0,也就…

ES的文档操作

一,DSL语句 1,新增文档: 2,查询文档和删除文档: ,3修改文档 修改有两种方式: 全量修改:直接覆盖原来的文档 增量修改:修改文档中的部分字段 全量修改 全量修改是覆盖原来的文档…

八:分布式锁

1、为什么要使用分布式锁 锁是多线程代码中的概念,只有多任务访问同一个互斥的共享资源时才需要锁。单机应用开发时一般使用synchronized或lock。多线程的运行都是在同一个JVM之下。应用是分布式集群,属于多JVM的工作环境,JVM之间已经无法通过…

Error: L6218E: Undefined symbol 系列错误汇总 (referred from main.o)

传送门 错误1: Undefined symbol(referred from main.o)错误2:Undefined_symbol _use_two_region memory 错误1: Undefined symbol(referred from main.o) Cube_GPIO\Cube_GPIO.axf: Error: L6218E: Undefined symbol LED_GPIO_Init (referr…

操作系统详解(5.1)——信号(Signal)的相关题目

系列文章: 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 操作系统详解(5)——信号(Signal) 文章目录 题目第一问第二问第三问 题目…

FGSM方法生成交通信号牌的对抗图像样本

背景: 生成对抗样本,即扰动图像,让原本是“停车”的信号牌识别为“禁止驶入” 实验准备 模型:找一个训练好的,识别交通信号牌的CNN模型,灰度图像 模型地址:GitHub - Daulettulegenov/TSR_CNN:…

Wargames与bash知识17

Wargames与bash知识17 Bandit25(Bandit26) 关卡提示 从bandit25登录到bandit26应该相当容易…用户bandit26的shell不是/bin/bash,而是其他东西。找出它是什么,它是如何工作的,以及如何摆脱它。 推荐命令 ssh, cat, …

CSS基础笔记-05layout

CSS基础笔记系列 《CSS基础笔记-01CSS概述》《CSS基础笔记-02动画》《CSS基础笔记-03选择器》《CSS基础笔记-04cascade-specificity-inheritance》 文章目录 CSS基础笔记系列什么是CSS布局布局方法normal flowflexboxgridfloats 总结 什么是CSS布局 CSS布局是指在页面中对元素…