3 回答
TA贡献1856条经验 获得超5个赞
也许这不是您需要的答案,但是我遇到了类似的问题,因此我决定将其放在此处。
我需要通过记事本++将500个xml文件转换为UTF8。为什么使用记事本++?当我使用“在UTF8中编码”选项(许多其他转换器使用相同的逻辑)时,它弄乱了所有特殊字符,因此我不得不明确地使用“转换为UTF8”。
这里有一些简单的步骤,可以通过Notepad ++转换多个文件,而不会弄乱特殊字符(例如变音符)。
运行Notepad ++,然后打开菜单Plugins-> Plugin Manager-> Show Plugin Manager
安装Python脚本。安装插件后,重新启动应用程序。
选择菜单插件-> Python脚本->新建脚本。
选择其名称,然后输入以下代码:
convertToUTF8.py
import os
import sys
from Npp import notepad # import it first!
filePathSrc="C:\\Users\\" # Path to the folder with files to convert
for root, dirs, files in os.walk(filePathSrc):
for fn in files:
if fn[-4:] == '.xml': # Specify type of the files
notepad.open(root + "\\" + fn)
notepad.runMenuCommand("Encoding", "Convert to UTF-8")
# notepad.save()
# if you try to save/replace the file, an annoying confirmation window would popup.
notepad.saveAs("{}{}".format(fn[:-4], '_utf8.xml'))
notepad.close()
毕竟,运行脚本
TA贡献1825条经验 获得超6个赞
如果您的文件中没有非ASCII字符(代码点128及以上),则无BOM的UTF-8与ASCII相同,一个字节一个字节-因此Notepad ++会猜错。
您需要做的是在提供AJAX响应时指定字符编码-例如,使用PHP,您可以这样做:
header('Content-Type: application/json; charset=utf-8');
重要的部分是在每个 JS响应中指定字符集-否则IE会退回到用户的系统默认编码,这在大多数情况下是错误的。
添加回答
举报