我有一个网站,我可以在Firefox中使用jQuery发送我的土耳其语字符,但Internet Explorer不会发送我的土耳其语字符.我在记事本中查看了我的源文件,这个文件的代码页是ANSI.
当我将其转换为没有BOM的UTF-8并关闭文件时,当我重新打开时,该文件再次是ANSI.
如何将我的文件从ANSI转换为UTF-8?
jak*_*b.g 67
关于这部分:
当我将它转换为UTF-8而没有bom和关闭文件时,当我重新打开时,该文件再次是ANSI.
最简单的解决方案是通过正确配置Notepad ++来完全避免这个问题.
尝试Settings
- > Preferences
- > New document
- > Encoding
- >选择UTF-8
无BOM,然后检查Apply to opened ANSI files
.
这样,所有打开的ANSI文件将被视为没有BOM的UTF-8.
有关正在进行的解释,请阅读此答案下方的评论.
要完全了解Unicode和UTF-8,请阅读Joel Spolsky 撰写的这篇优秀文章.
Jun*_*ami 41
也许这不是你需要的答案,但我遇到了类似的问题,所以我决定把它放在这里.
我需要通过Notepad ++将500 xml文件转换为UTF8.为什么选择Notepad ++?当我使用选项"在UTF8中编码"(许多其他转换器使用相同的逻辑)时,它搞砸了所有特殊字符,因此我必须明确地使用"转换为UTF8".
这里有一些简单的步骤,可以通过Notepad ++转换多个文件,而不会弄乱特殊字符(例如变音符号).
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()
Run Code Online (Sandbox Code Playgroud)
毕竟,运行脚本
Pis*_*3.0 15
如果没有非ASCII字符(码点128及以上)在您的文件,UTF-8无BOM是一样的ASCII,逐字节 - 所以记事本++会猜错.
您需要做的是在提供AJAX响应时指定字符编码- 例如,使用PHP,您可以这样做:
header('Content-Type: application/json; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)
重要的是用每个 JS响应指定字符集- 否则IE将回退到用户的系统默认编码,这在大多数情况下都是错误的.
归档时间: |
|
查看次数: |
219098 次 |
最近记录: |