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

Written by

in

文章目录
  •               Fin.
    • Word里日文文档乱码问题
    • ansi编码
    • 字符集和编码的区别.GB2312是一个字符集, 那ANSI是编码, 但是他俩是什么个意思?

    在这里插入图片描述在这里插入图片描述

    遇到了一个txt日文文本,出现大面积乱码。而且不懂日文,乱码的话,连翻译软件也无法使用。【上图为测试文本】
    以下的解释与解决办法等为自己的想法,并不一定准确。

    1. 简单的解释
    2. 如何解决
    3. 附件
    4. 总结

    在日文操作系统中,ANSI 编码代表的是 Shift_JIS 编码;在简体中文操作系统中,ANSI 编码代表 GBK 编码。所以我们打开一个日语环境下保存为 ANSI 编码文本时,在中文环境下显示会出现乱码。日文编码对应日文字,中文编码应该对应的中文字【这可以解释为什么打开的文本都是看不懂,但是确实为汉字】;日文原来的编码以中文编码的环境肯定显示有问题,导致的结果就是出现乱码。

    模拟在日文环境下保存,在中文环境下显示的过程:

    创建一个 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'))
    あのねせかいはじつはつながっているんだって
    だからたとえはなれてしまってもみんなひとりじゃない
    たいせつなひととはいつまでもずっとどこかでつながっているのさ
    

    附件

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

     
     
     
     
     
     
     
    Fin.

    评论

    发表回复

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

    站内搜索