首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是什么使文件成为UTF-8?

是什么使文件成为UTF-8?
EN

Stack Overflow用户
提问于 2018-09-29 06:34:40
回答 2查看 1.8K关注 0票数 1

我读到在文本文件的开头添加UTF-8字节顺序标记(3个字符)使其成为UTF-8文件,但我也读到unicode建议不要对UTF-8使用BOM。

我正在用PHP生成文件,并且要求这些文件是UTF-8。我已经将UTF-8 BOM添加到文件的开头,但是我从解析文件的公司那里收到了关于文件开头的垃圾字符的反馈,这给了我将文件设置为UTF-8的要求。

如果我在记事本中打开文件,它不会显示BOM,如果我选择另存为,它会显示UTF-8作为默认选项。

在Textpad32中打开文件时,将在文件开头显示3个字符。

那么,是什么使文件成为UTF-8呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-29 07:55:30

文本是UTF-8,因为它与UTF-8一样有效,并且作者认为它是有效的。

作者的决定如何传达给消费者是另一个问题,它涉及约定、猜测和带内或带外信令的各种方案,如HTTP或HTML字符集、BOM (增强了猜测)、一些信封/嵌入格式、附加数据流、文件命名等等。

票数 6
EN

Stack Overflow用户

发布于 2018-09-29 11:23:02

该文件不需要任何明确的指示它是UTF-8,现代文本编辑器应该从上下文中检测UTF-8编码,因为UTF-8序列非常不同。

此外,正如您亲身经历的那样,PHP不喜欢BOM头文件,它是一个愚蠢的东西,经常搞乱脚本输出,并产生比它解决的更多的问题。

HTML有它自己的方式来声明文件的编码,你可以在HTML本身中这样做:

代码语言:javascript
复制
<head>
    <meta charset="UTF-8">
</head>

或者在HTTP头中声明编码,这里使用PHP:

代码语言:javascript
复制
header('Content-Type: text/html; charset=utf-8');

如果没有指定任何编码,现代浏览器也会假定UTF-8为默认编码。毕竟,它是web的标准。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52563408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档