【浅谈】日文的文本等出现乱码的情况以及解决办法
参考链接
- Word里日文文档乱码问题
- ansi编码
- 字符集和编码的区别.GB2312是一个字符集, 那ANSI是编码, 但是他俩是什么个意思?
日文的文本出现乱码
前言
遇到了一个txt日文文本,出现大面积乱码。而且不懂日文,乱码的话,连翻译软件也无法使用。【上图为测试文本】
以下的解释与解决办法等为自己的想法,并不一定准确。
目录
1. 简单的解释
2. 如何解决
3. 附件
4. 总结
一、简单的解释 ↶
1. Wins10 文本文件的默认编码是 ANSI 编码【统称】。直接保存就是这个编码,当然可以自行更改 Unicode 码等。
在日文操作系统中,ANSI 编码代表的是 Shift_JIS 编码;在简体中文操作系统中,ANSI 编码代表 GBK 编码。所以我们打开一个日语环境下保存为 ANSI 编码文本时,在中文环境下显示会出现乱码。日文编码对应日文字,中文编码应该对应的中文字【这可以解释为什么打开的文本都是看不懂,但是确实为汉字】;日文原来的编码以中文编码的环境肯定显示有问题,导致的结果就是出现乱码。
2. 如何较为直观的解释这个过程呢【基于 Python 简易代码】
模拟在日文环境下保存,在中文环境下显示的过程:
① 创建一个 raw 变量,里面是一句日文。
>>>raw = '最初にお読みください'
'最初にお読みください'
这个操作有点像,你在文本中输入看的懂的文字。
② 将 raw 编码为 ansi 编码,也就是对应日文系统下的 Shift_JIS 编码。
>>> raw_encode = raw.encode('shift-jis')
>>> raw_encode
b'\x8d\xc5\x8f\x89\x82\xc9\x82\xa8\x93\xc7\x82\xdd\x82\xad\x82\xbe\x82\xb3\x82\xa2'
这个操作相当于将文件以二进制形式保存在电脑上。
③ 将 raw_encode 变量以 gbk 的形式解码【解码与编码是相对的】
>>> raw_encode.decode('gbk')
'嵟弶偵偍撉傒偔偩偝偄'
这个操作则对应了用户在中文环境中,打开日文环境下所保存文本时的情景,理所当然的出现了乱码。
还原过程,当然就是反过来操作一遍
>>> raw = '嵟弶偵偍撉傒偔偩偝偄'
>>> raw_encode = raw.encode('gbk')
>>> raw_encode.decode('shift-jis')
'最初にお読みください'
通过这样的说明,我们就知道了背后大致的原理,那么就可以解决文本出现乱码的情况了。
【当然这个例子是基于原来编码是 shift-jis 编码的,如果是别的编码这样操作就会出现问题】
二、如何解决 ↶
- 直接用浏览器打开文本文件。
这个有的时候能成功,有点时候失败,我也不清楚,感觉文字越长越复杂,越容易直接翻译为原文【chrome内核】;IE的话右键改个编码有时候也行的。可以尝试一下。 - 文件名解析&批量文件名重命名 v1.3
确实好用,方便。懒人必备。其它功能可以自行研究。下载方式就放在最后。
- 可以自己动手写解码程序
>>> a = '''偁偺偹偣偐偄偼偠偮偼偮側偑偭偰偄傞傫偩偭偰
偩偐傜偨偲偊偼側傟偰偟傑偭偰傕傒傫側傂偲傝偠傖側偄
偨偄偣偮側傂偲偲偼偄偮傑偱傕偢偭偲偳偙偐偱偮側偑偭偰偄傞偺偝'''
>>> a.encode('gbk').decode('shift-jis')
'あのねせかいはじつはつながっているんだって\nだからたとえはなれてしまってもみんなひとりじゃない\nたいせつなひととはいつまでもずっとどこかでつながっているのさ'
>>> print(a.encode('gbk').decode('shift-jis'))
あのねせかいはじつはつながっているんだって
だからたとえはなれてしまってもみんなひとりじゃない
たいせつなひととはいつまでもずっとどこかでつながっているのさ
三、附件 ↶
☛ 附件
提取码:g9fp
四、总结 ↶
随便写一写,并记录在博客中。
点我回顶部 ☚
Fin.
【浅谈】日文的文本等出现乱码的情况以及解决办法相关推荐
- qt接收服务器信息中文乱码,在qt提取lineedit中的中文字符串,通过tcp通信时,服务器接收乱码的情况,解决办法...
使用的是qt5.9版本,在取lineedit中的中文字符转成字符串,后转成char*的过程中,在仅仅使用string str.tolocal8bit,是不起作用的,转换不了格式,输出的char*数组还 ...
- PHP经典乱码“口”字与解决办法
这几天看了看 Ajax 的基础知识,在练习一个简单的 请求和响应时,PHP 返回来的数据 在 IE 中开头总显示 一个 "锘" 字!上网 Baidu 了一下,发现这是由于 系统 处 ...
- mysql保存中文乱码的原因和解决办法
当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心. 也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类似 ...
- mysql保存时乱码了_MySQL保存中文乱码的原因和解决办法
(3)MySQL的字符集设置. 这个是重点了,一般都是在这里搞错而出现了mysql乱码. mysql编码设置可以分为三种设置:数据库的编码.表的编码.和字段的编码. a.数据库的编码: 在sqlyog ...
- PHP经典乱码“锘”字与解决办法
PHP经典乱码"锘"字与解决办法 这几天看了看 Ajax 的基础知识,在练习一个简单的 请求和响应时,PHP 返回来的数据 在 IE 中开头总显示 一个 "锘" ...
- 中文字符乱码的原因及解决办法
中文字符乱码的原因及解决办法 java的内核是Unicode的,也就是说,在程序处理字符时是用Unicode来表示字符的,但是文件和流的保存方式是使用字节流的.在java的基本数据类型中,char是U ...
- java http 中文乱码_关于java发送http请求时中文乱码的一种解决办法
在jsp中常见的乱码解决办法无外乎是关于get和post两种方式的,但只有切实地在实践中使用时才会注意或者说注重到其他方式.例如,在http请求头中传送中文参数,出现乱码,如何解决? 实际场景:使用S ...
- html里显示中文乱码的原因及解决办法
html里显示中文乱码的原因及解决办法 我试着写第一个html文件时候,发现打开保存的html文件后,中文显示的是乱码的.我知道这是字符编码的原因,发现要在开头统一规范下编码格式,通常charset的 ...
- iis7配置shopex总结,shopex乱码问题最终原因解决办法
shopex乱码问题最终原因解决办法: Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非 线程安全)之分,这两者不同在于何 ...
- phpMyAdmin将数据表中数据导出为csv文件,用微软excel打开时,中文乱码的原因以及解决办法
中文乱码的原因:用户使用phpMyAdmin可以将数据表中数据导出为csv文件,而使用Excel工具打开该文件时,可能出现中文乱码的情况.这是因为phpMyAdmin导出的csv文件使用了UTF-8编 ...
最新文章
- LCS最长公共子序列和LIS最长上升子序列——例题剖析
- MUI:字符串和json数据的相互转换
- html页面源码_整合SpringMVC之错误处理底层原理及源码分析
- 归并排序 自带时间复杂度测试
- 95-855-040-源码-调度-Flink Schedule Mode 调度模式
- ccs 移植创建新工程_CCS新工程创建与配置
- java实现rabbitmq动态路由/话题模型(topic queues), 生产者 消费者 交换机 消息队列
- python-ImageDraw
- 【数据结构】栈的基本操作
- 南京邮电大学高级语言程序设计实验二(选择与循环结构编程)
- WPS网盘怎么显示在我的电脑里?
- Java:计算代码耗时的5种方法
- Java程序员月薪三万的技术达到什么程度?
- 大林算法,比较基础的,无振铃的改了对象需要手动改一下
- 盗图+php,PHP小偷程序的设计与实现方法详解
- Android 11.0 ActivityManagerService的启动流程
- 如何备份你的 QQ 空间相册
- 百度快速收录技巧总结
- GitChat·人工智能 | 肿瘤医疗影像 AI 识别技术实践
- CEPH分布式存储介绍与原理架构概述