起初我以为是因为乱码的文件内容带有图片的原因,结果后面发现有些带图片的文件也不会乱码。
乱码的里面是不是用了 HTML 语法,比如 <div>
<table>
之类的。
用vscode之类的看看乱码文件字符编码是什么?
正常Obsidian里面的md文件应该是utf-8编码的,记事本打开文件默认是使用的系统的编码方式。
用插件了,转成标注md语法再看
感谢答复,我记事本是Notepad2,替换了系统默认记事本,所以之前表述有误,应该是用notepad2打开是乱码。根据你提示编码问题我查看了一下,凡是用notepad2打开乱码的,在notepad2里查看编码都是unicode,打开正常显示的话查看编码是uft-8。为什么会出现两种编码,不应该默认就是uft-8吗?我笔记都是从Evernote里一篇一篇复制粘贴过来的,不是批量转换的,而且起初以为的和图片有关也是错的,有没有图片的都发现了相同的问题。
进一步测试发现,当我随意在笔记里添加一两个字符,比如数字2,保存,原本用notepad2打开乱码的再次打开就不会乱码了,查看编码是utf-8,然后当我在笔记里把数字2删除,保存,再次用notepad2打开,乱码,查看编码unicode。这是为何,保存时编码为何会随着字符增减而变化?
没有html语法,按照阳光灿烂的说法是编码问题,我查了一下,确实打开是乱码的编码显示是unicode,可我都是复制粘贴的内容,怎么会出现不同的编码方式?
猜测:
当你修改笔记保存后,Notepad2 根据文件内容来猜测其编码,并在保存时进行相应的编码转换,文件的编码被修改为 UTF-8。
要解决这个问题,可能的方法:
- 在 Notepad2 中,手动将编码设置为 UTF-8。
- 在保存文件时,将编码另存为 UTF-8,以确保文件始终以 UTF-8 编码保存。
我没有表述清楚,我说的在笔记里修改,应该表述为“在obsidian笔记里修改”。
也就是说,我的复制粘贴修改保存等所有操作都是在ob里操作的,然后我用notepad2打开对应的md文件,发现凡是notepad2里乱码的在notepad2里查看其编码都是unicode而非utf8,。notepad2我这里只用作查看,不进行任何修改。
我本人不懂md语法,也是刚刚接触ob没几天,但是这并不会妨碍我用他来记笔记。只不过我好奇md是通用文件,就想用notepad2直接打开看看,验证一下md到底是不是通用文件,结果好巧不巧的是,我打开的第一篇就是乱码,然后我又看了一些,发现是少数笔记才会出现乱码,起初我以为是因为有图片才会乱码,后来发现没有图片的也乱码,于是发帖求证,得到答案是编码原因导致乱码,而这些笔记我全部是手动从Evernote一篇篇复制粘贴过来的,但是保存后编码却不一样,我无法理解。
我不是互联网收集癖,这些笔记基本都是我生活中的事或经验总结之类的,有些会带图片,但基本都是手打字,不是网页上复制粘贴过来的,所以也不涉及格式代码之类的。
我经常拿 WPS 和 Word 打开 MD,是可以选用什么编码打开的。我问你的文档是否有 <div>
<table>
等,就是因为就算选了用 UTF-8 打开,只要有 HTML 编码,软件就会猜测你是一个网页文件,就会用打开网页的方式打开。这样 Ob 里面所有的换行,由于不是网页的标准语法,就会使所有的文字黏在一起。
也许你文档内容的排列组合,对于 Notepad2 来说出现了可识别的“代码”,就像 WPS 和 Word 的自动识别一样,被它猜测成了其他的编码,所以会乱码。
我的笔记基本都是自己手写的个人点滴记录,一般就是纯文字或加几个图片,没有那些代码之类的,我也不懂代码,也不是网页拷过来的,网上能搜到的知识一般我不会记录到笔记里。
你说的因为有代码导致notepad2会自动识别为错误的编码,如果notepad2这么废柴,确实有些不可理喻了,它应该是文件内容无论是啥它都不应该改变文件原有的编码格式。
我现在想找一个能直接查看文件是什么编码的软件,但是还没找到,如果能找到这样一个工具,就可以确定是ob写入时转换了编码,还是在notepad2打开时转换了编码。
它只是选了一种编码格式来打开而已。你看我拿 Word 打开 MD 文件的截图,它可以选一堆编码来打开,这不代表 MD 文件本身同时编了这么多码。
你说的乱码是类似上图左侧那样的吧,这是我用 Ob 编辑的同一个文档,在 WPS 和 Word 分别打开的效果。我这个文档里也没有 HTML 编码,有 HTML 编码只是其他软件打开 MD 出现格式不统一的常见原因之一。
破案了,找了一个工具查了一下,ob写入的md文件全部都是utf8编码,但是notepad2打开后会自动用它认为正确的编码打开,比如用unicode,就会导致乱码,确实不是ob的锅,是notepad2的锅。
更新最新版notepad2后问题解决,不再出现乱码问题。非常感谢前辈耐心解答