utf8、utf-8、UTF8和UTF-8有什么区别?是否有地方需要注意它们的用法?

4
在许多不同的代码环境的官方文档中,我看到UTF-8通常被表达为大写或小写形式,并且带有或不带连字符。是否有必要在某些地方使用其中一种方式?
这些字符串出现的一些地方包括:
PHP手册,关于header()参数(HTTP标头)
PHP手册,关于PHP函数参数
PHP手册,关于内部配置
MySQL手册,关于配置
Python 2代码编码声明
Bash语言环境配置
HTML元标记
XML文件类型声明
2个回答

8

这两种方式确实大相径庭。一个地方只接受一种表格,而另一个地方则只接受另一种。

在哪种情况下使用哪种表格是不好的想法——这将是一个巨大且无意义的开放列表。只需始终查阅各自文档中有关特定情况接受的表格形式即可。


谢谢。我看到有些地方需要一种形式,其他地方需要另一种形式,大多数是容忍的。我主要想知道那些不容忍的地方! - dotancohen
2
@dotancohen 只需要查看文档即可。将此作为 Stack Overflow 问题提出并没有实际意义,因为这只会得到一个毫无实际用途的列表。 - Pekka
@dotan ...除非你真的有使用这种列表的实际用例。但我真的想不出一个有效的用例。 - Pekka
我每天都会从PHP转到MySQL再到Javascript编码,有时还会加入一些C#,Java或Python,甚至在糟糕的日子里也会用Bash!我觉得每次查找资料都很麻烦,所以我尽量使用官方文档示例相同的格式。如果我能用UTF-8之类的东西替换所有内容,那我就会很开心了! - dotancohen
1
@Pekka:这正是我发布此问题的原因!为了知道异常在哪里。 - dotancohen
显示剩余2条评论

2
官方的编码注册表将名称定义为不区分大小写,拼写为UTF-8(UTF8甚至不是有效的别名)。任何能够处理UTF-8的软件都极不可能不认识UTF-8这个名称。因此,在所有地方使用UTF-8而不是UTF8非常重要。
由于名称不区分大小写,文档可以使用任何大小写形式。对它们施加大小写限制的软件将会出现严重问题,我不知道为什么会有人认为这样的软件存在。文档中的变化并不意味着必须使用某些特定的字母大小写形式。

1
"UTF8" 在 Python 的 .encode() 中运行良好。因此在 "所有地方" 并不是那么重要。 - Wooble
1
mySQL不接受带有破折号的UTF-8编码。它期望使用utf8(但是大小写不敏感)。 - Pekka
谢谢!这正是我需要知道的! - dotancohen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接