最近需要共享一些文件,日语系统的.txt和中文带宏的Excel。日语系统无法打开Excel的宏,会提示已损坏;中文系统打开txt会乱码,无法读取。

经过一番测试,得出大致原因是:由于txt创建时使用的是ANSI字符集,不同语言的操作系统对ANSI编码的解析不同,所以中文系统打开时会出现乱码。

另外,可以在设置 -> 时间和语言 -> 语言 -> 管理语言设置 中,修改非Unicode程序的语言,修改成对应字符集的语言,即可随时应对切换应对日语的txt和中文的宏Excel。

为了便于文件在不同语言系统中共享txt,在创建.txt时选择保存成UTF-8格式,这样就可以避免反复切换对应的Unicode语言和重启电脑。

另外Win10更新了一个Beta功能,“使用UTF-8提供全球语言支持”。这个功能启用以后,.txt倒是可以随意读取了,但是会影响Excel宏的读取。

最后简单分析一下原因。

不同语言的操作系统,对于ANSI套用的字符集不同,中文系统采用的是GBK编码,英文使用的是ASCII编码,韩语使用EUC-KR编码,日语采用Shift_JIS 编码。

而日语系统下的txt默认保存为ANSI格式,因此不能在中文系统下正常读取。他们共用的编码,只有ASCII,这也是为什么日语、中文系统下只有ASCII可以互通、不乱码。

临时写下备忘,也许以后会填坑。

有关编码知识,进阶参考:

【浅谈】日文的文本等出现乱码的情况以及解决办法:

https://blog.csdn.net/Enderman_xiaohei/article/details/104619962

ANSI是什么编码?:

https://www.cnblogs.com/malecrab/p/5300486.html

Win10日语中文系统语言切换及txt、Excel宏乱码原因分析相关推荐

  1. Android 系统语言切换监听和设置

    最近项目上产品经理提了个需求,要求关闭语言国际化,不管手机系统设置那个国家的语言,都要显示汉语,好吧,既然有需求,那就做吧.但是项目中已经有英文的配置了,且是作为默认String提供的,这么多翻译好的 ...

  2. switch日版有中文吗_Switch中文系统更新方法 NS怎么设置中文系统语言

    任天堂 Switch 1月29日更新了中文的系统语言补丁,大家终于可以在Switch上使用中文语言进行系统等一系列设置了,但是很多玩家并不太了解具体更新和设定的流程,那么今天就带来由"ACG ...

  3. app系统语言切换及app内部切换语言

    今天闲来无事看了点关于android系统语言及app内语言的切换,有点小感想就做了个demo,拿出来分享下 1.根据系统语言app适配 这个相对来说比较简单我们只需要建一个相应的values文件夹就好 ...

  4. C++如何实现系统语言切换功能,MessageBox的确认/取消按钮语言显示如何跟程序一致

    文章目录 前言 一.新建工程 二.添加多国语言的资源 三.程序语言设置 四.语言切换 五.字符串处理 六.MessageBox的问题 七.相关函数和类型 参考文章 前言   目前很多软件都是要出口到多 ...

  5. android 系统语言切换,Android系统切换语言更新应用界面方法

    最近做的一个升级应用,在下载升级包的过程中又有一个toast类型的dialog悬浮在屏幕右上角,这个时候切换系统语言会出现问题. 当主屏幕为升级应用时,切换系统语言升级应用重启,而重启后并不能自动断点 ...

  6. android系统语言切换及系统烧写默认语言设置

    Android 4.3 1 . 语言全局切换 重写Setting后需要全局切换语言(中英.中阿等),查看原生的Setting代码,抽出切换语言部分,具体实现如下: zh_CN,这是原始localeSt ...

  7. CentOS7系统语言切换

    在CentOS系统中,中文语言界面虽然便于直观理解,但是经常要使用操作命令,遇到有中文目录的情况下,混杂有中英文名称,对输入字符和定位路径不太方便, 因此统一修改为全英文语言显示. #查看当前系统的语 ...

  8. Android notification不能随系统语言切换而更新

    Android的notification不能随locale的切换而切换,原生系统就是这样设计的. 原因可能有以下几点: 1,许多notification是由app自己发送的,是remote view, ...

  9. Linux 系统语言切换 ---- Linux Ubuntu 系统语言切换为英文

    系统:Linux Ubuntu 18.04 中文版 目录 1. 在桌面右键打开命令框(Open Terminal): 2. 进入系统默认语言设置文件目录: 3. 打开系统语言配置文件: 4. 打开的系 ...

最新文章

  1. 成功解决TypeError: __init__() got an unexpected keyword argument 'serialized_options'
  2. 马斯克采访:要么死的安然,要么活得绚烂
  3. php里的%是什么意思,大家帮小弟我看下这段代码中的“%”是什么意思
  4. node.js事件驱动_了解Node.js事件驱动架构
  5. java判断读到末尾_IO流如何判断读取到了流的结尾,程序中以-1来判断,是流中写入一个EOF表示流结束吗,底层实现呢?...
  6. JAVA类 与类文件
  7. Matlab的曲线拟合工具箱CFtool使用简介
  8. 【Linux operation 09】 - SUSE 12 SP5官网下载
  9. 渲染101渲染农场完美支持火凤凰插件Phoenix FD
  10. chromecast 协议_如何使用Chromecast在电视上玩Android游戏
  11. 谷歌账号--手机号无法验证
  12. matlab中的三次样条曲线拟合,三次样条拟合典型实例.doc
  13. npm 中 --save 与 --save-dev 的区别
  14. linux防文件误删
  15. 特征多项式及Cayley-Hamilton定理
  16. 修改“Applications”需要输入管理员名称和密码。
  17. 如何用python写汉诺塔游戏的辅助
  18. 初级网站建设--入门篇
  19. Vue刷新页面方式详解
  20. 将项目生成api及maven依赖,用feign暴露接口给外部调用

热门文章

  1. 360篡改主页如何恢复
  2. php人事考勤系统,基于PHPMySQL的考勤系统
  3. matlab vvvs电机,MATLAB/Simulink在控制系统仿真与CAD应用(一)
  4. java海康威视设备注册、获取摄像头、录像机在线状态,获取指定摄像头PTZ值
  5. visual code rg.exe或者git for window占用内存越来越大
  6. qt中mysql怎么支持事务_Qt踩坑之mysql数据库不支持事务操作?
  7. 查询任何一门课程成绩在70分以上的姓名、课程名称和分数
  8. linux指定日期月末,linux 获取某个日期对应的月末日期方法
  9. Navicat Premium教程|Navicat Premium怎么用?
  10. CoreJava基础