当前位置: 首页 > news >正文

Linux下的乱码问题

Unbuntu中文乱码问题

所有的乱码问题都是编码不统一的问题,要解决编码问题,就要了解本身的连接方式。

[TOC]

终端乱码

1.判断环境

xshell -> 终端 -> ubuntu

所以乱码问题则出现在 xshell 与终端 编码配置不一致上。

2. 查看编码

首先查看 xshell 编码:

Properties -> Terminal -> Encoding -> Unicode(UTF-8)

xshell编码 UTF-8

在终端执行 locale 查看编码:

LC_ALL="zh_CN.GBK"

终端编码 GBK

3.修改环境变量

export LC_ALL=zh_CN.UTF-8 写入文件/etc/profile
执行 source /etc/profile

注意: 如果执行source /etc/profile出现如下错误:

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)

先安装zh_CN.UTF-8,执行locale-gen zh_CN.UTF-8 ,再使用locale查看是否已修改


修改环境变量有三种方式 :

  • export : 暂时性,重新登录就失效

  • 写入 ~/.bashrc : 长久性,只对当前用户生效

  • 写入 /etc/profile ;长久性,对所有用户生效

bash(终端)的环境变量读入顺序 /etc/profile -> ~/.bashrc -> export (后者会覆盖前者设置)

注意:后两种修改方式需要重新登录或者执行 sourcr ~/.bashrc(/etc/profile)才可生效

vim乱码

1. 连接方式

xshell -> Terminal -> vim

2. 修改配置文件

需要vim的编码方式与Terminal(终端)统一,在vim的配置文件~/.vimrc 写入:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936  # 读入的文件编码,因为无法确定文件编码,所以要全写上
set termencoding=utf-8  #在终端显示时的编码,需与终端一致
set encoding=utf-8      #vim本身的编码,默认为utf-8

修改.vimrc 有两种方式(文件不存在就创建一个新的)

  • ~/.vimrc : 长久性,当前用户生效

  • /etc/vim/vimrc : 长久性,所有用户生效

相关文章:

  • C - Train Problem II——(HDU 1023 Catalan 数)
  • 每周总结和进度报告
  • windows中:git 使用RBTools工具 review
  • 获取Ceph的CRUSH Map和CRUSH Map介绍
  • 微信支付v3开发(5) 扫码并输入金额支付
  • 教你如何获取索爱X10 Android2.1 Root权限
  • Perl语言——简单说明
  • Linux命令(4):cat命令
  • javascript 闭包理解例子
  • 客户端putty, xshell连接linux中vim的小键盘问题
  • 2016蘑菇街编程题5题
  • C指针(二)
  • 用Python开发自动化测试脚本
  • git简单命令
  • 程序员健康Tips
  • 4个实用的微服务测试策略
  • HTML5新特性总结
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript函数式编程(一)
  • javascript面向对象之创建对象
  • JS变量作用域
  • Laravel核心解读--Facades
  • PHP 的 SAPI 是个什么东西
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 关于字符编码你应该知道的事情
  • 今年的LC3大会没了?
  • 力扣(LeetCode)21
  • 如何合理的规划jvm性能调优
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 【云吞铺子】性能抖动剖析(二)
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # 安徽锐锋科技IDMS系统简介
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (四) Graphivz 颜色选择
  • (转载)虚函数剖析
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET : 在VS2008中计算代码度量值
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .Net程序帮助文档制作
  • /3GB和/USERVA开关
  • /proc/stat文件详解(翻译)
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [14]内置对象
  • [17]JAVAEE-HTTP协议
  • [20190416]完善shared latch测试脚本2.txt
  • [ActionScript][AS3]小小笔记
  • [Angular] 笔记 18:Angular Router
  • [BJDCTF 2020]easy_md5
  • [BUG]Datax写入数据到psql报不能序列化特殊字符