【浅谈】日文的文本等出现乱码的情况以及解决办法「建议收藏」

【浅谈】日文的文本等出现乱码的情况以及解决办法「建议收藏」参考链接Word里日文文档乱码问题ansi编码字符集和编码的区别.GB2312是一个字符集,那ANSI是编码,但是他俩是什么个意思?日文的文本出现乱码前言遇到了一个txt日文文本,出现大面积乱码。而且不懂日文,乱码的话,连翻译软件也无法使用。【上图为测试文本】以下的解释与解决办法为自己的想法等,并不一定准确。目录1.简单的解释2.如何解决3.附件一、简单的…

大家好,又见面了,我是你们的朋友全栈君。

参考链接

日文的文本出现乱码

在这里插入图片描述

前言

遇到了一个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 编码的,如果是别的编码这样操作就会出现问题】

二、如何解决 ↶

  1. 直接用浏览器打开文本文件。
    这个有的时候能成功,有点时候失败,我也不清楚,感觉文字越长越复杂,越容易直接翻译为原文【chrome内核】;IE的话右键改个编码有时候也行的。可以尝试一下。
  2. 文件名解析&批量文件名重命名 v1.3
    确实好用,方便。懒人必备。其它功能可以自行研究。下载方式就放在最后。
    在这里插入图片描述
  3. 可以自己动手写解码程序
>>> a = '''偁偺偹偣偐偄偼偠偮偼偮側偑偭偰偄傞傫偩偭偰 偩偐傜偨偲偊偼側傟偰偟傑偭偰傕傒傫側傂偲傝偠傖側偄 偨偄偣偮側傂偲偲偼偄偮傑偱傕偢偭偲偳偙偐偱偮側偑偭偰偄傞偺偝'''
>>> a.encode('gbk').decode('shift-jis')
'あのねせかいはじつはつながっているんだって\nだからたとえはなれてしまってもみんなひとりじゃない\nたいせつなひととはいつまでもずっとどこかでつながっているのさ'
>>> print(a.encode('gbk').decode('shift-jis'))
あのねせかいはじつはつながっているんだって
だからたとえはなれてしまってもみんなひとりじゃない
たいせつなひととはいつまでもずっとどこかでつながっているのさ

三、附件 ↶

☛ 附件

提取码:g9fp

四、总结 ↶

随便写一写,并记录在博客中。

点我回顶部 ☚

 
 
 
 
 
 
 
Fin.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130887.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于MAX31865的温度控制系统

    基于MAX31865的温度控制系统系统介绍这是之前写的关于MAX31865测温相关的文章,本次在此基础上又实现了一些新功能。总结——STM32F103C8T6通过MAX31865读取PT100电阻值STM32控制max31865,利用pt100测温度,利用0.96OLED液晶显示屏显示温度值。温度过高控制风扇开启,温度过低控制加热膜加热。后续需要增加温度过高或过低蜂鸣器响且液晶有提示报警类型。系统组成STM32F103C8T6小系统板单片机核心板STM32开发板学习板实验板(升级版)MAX31865RTD铂电阻温度检测器

    2022年6月16日
  • eclipse怎么运行java_使用eclipse编写和运行java程序(基础)「建议收藏」

    eclipse怎么运行java_使用eclipse编写和运行java程序(基础)「建议收藏」1.首先java程序的运行你需要下载和安装JDK,这是java运行的必备环境。2.在桌面上找到eclipes,双击打开。3.在eclipes启动的过程中,会弹出一个窗口,让你填写java工作区的保存目录,在这个目录下会保存你写的所有的源代码文件,建议不要把工作区放在C盘注:修改工作区路径File->SwitchWorkspace4.ecplies启动完成之后,会有一个欢迎页面,这个不…

    2022年7月7日
  • java dump文件分析报告_java线程dump命令

    java dump文件分析报告_java线程dump命令生产环境下,如果出现OOM情况下,如何分析Dump文件。

    2022年9月25日
  • xmlns属性

    xmlns属性今天在看网上其他的项目,发现有一行代码我不明白意思:百度之后,才知道,这是一个属性。在XHTML中,xmlns属性是必需的。在HTML中,xmlns属性是无效的。xmlns属性规定文档的xml命名空间。然而,如果在XHTML文档中未使用xmlns, http://w3.org 的HTML验证器也能正确识别文档。这是因为命名空间”xmln

    2022年10月23日
  • MATLAB之fprintf函数的具体使用方法

    MATLAB之fprintf函数的具体使用方法fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:数据的格式化输出:fprintf(fid,format,variables)按指定的格式将变量的值输出到屏幕或指定文件fid为文件句柄,若缺省,则输出到屏幕format用来指定数据输出时采用的格式%d整数%e实数:科学计算法形式%f实数:小数形式%g由系统自动选取上述两种格式之一%s输出字符串fprintf(fid,forma…

    2022年10月19日
  • windows server2016搭建ftp服务器_搭建网站的服务器

    windows server2016搭建ftp服务器_搭建网站的服务器WindowsServer2016系统中,快速搭建FTP服务器,作为文件服务器,下面分三步说明:安装IIS和FTP服务 配置FTP服务 测试FTP一、安装IIS和FTP服务首先点击开始菜单,进入找到服务器管理器,点击打开。进入后,找到管理菜单,点击添加角色和功能。进入服务器系统打开“服务器管理器”,点击“添加角色和功能”进入角色添加向导,一直点击下一步按钮到服务…

    2022年9月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号