假设我在包含charset UTF8
的网页中有一个输入字段;假设我打开一个用ISO-8859-1
编码的文本文件作为charset。
现在我将一个带有特殊字符的字符串(例如,ô
)从文件复制并粘贴到输入字段:我看到特殊字符正确显示在输入字段中。
从ISO-8859-1
到UTF8
的转换是谁?浏览器?
答案 0 :(得分:3)
很可能,它并没有真正转换为UTF-8,而是转换为浏览器使用的字符的内部表示,很可能是UTF-16(无论网页的编码是什么)
答案 1 :(得分:3)
当您打开文件并将其复制/粘贴到浏览器时,它最终会以Unicode格式结束,因为这是浏览器的UI控件在内部使用的内容。谁实际执行从ISO-8859-1到Unicode的转换取决于几个因素(您正在使用的操作系统,您选择的文本编辑器是否编译为使用Ansi或Unicode,哪种剪贴板格式 - CF_TEXT
对于Ansi,CF_UNICODETEXT
用于Unicode - 应用程序用于复制等)。但无论如何,当Web浏览器提交表单时,它会在传输过程中将其Unicode数据编码为HTML /表单的字符集。