C.UTF-8 和 en_US.UTF-8 语言环境有什么区别? [英] What is the difference between C.UTF-8 and en_US.UTF-8 locales?

查看:71
本文介绍了C.UTF-8 和 en_US.UTF-8 语言环境有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将 python 应用程序从具有语言环境 en_US.UTF-8 的 ubuntu 服务器迁移到默认设置了 C.UTF-8 的新 debian 服务器.我试图了解是否会有任何影响,但在互联网上找不到好的资源来了解两者之间的区别.

I'm migrating a python application from an ubuntu server with locale en_US.UTF-8 to a new debian server which comes with C.UTF-8 already set by default. I'm trying to understand if there would be any impact but couldn't find good resources on the internet to understand the difference between both.

推荐答案

一般来说,C 适用于电脑,en_US 适用于美国会说英语(以及其他想要相同行为的人).

In general C is for computer, en_US is for people in US who speak English (and other people who want the same behaviour).

for computer 意味着字符串有时更加标准化(但仍然是英文),因此可以从其他程序读取程序的输出.使用 en_US,可以改进字符串,改进字母顺序(也许通过芝加哥风格规则的新规则等).所以更加用户友好,但可能不太稳定.注意:语言环境不仅用于字符串的翻译,还用于整理(字母顺序、数字(例如千位分隔符)、货币(我认为可以安全地预测 $ 和 2 个十进制数字将保留)、月份、星期几等.

The for computer means that the strings are sometime more standardized (but still in English), so an output of a program could be read from an other program. With en_US, strings could be improved, alphabetic order could be improved (maybe by new rules of Chicago rules of style, etc.). So more user-friendly, but possibly less stable. Note: locales are not just for translation of strings, but also for collation (alphabetic order, numbers (e.g. thousand separator), currency (I think it is safe to predict that $ and 2 decimal digits will remain), months, day of weeks, etc.

在您的情况下,它只是两个语言环境的 UTF-8 版本.

In your case, it is just the UTF-8 version of both locales.

一般来说应该没关系.我通常更喜欢 en_US.UTF-8,但通常没关系,在你的情况下(服务器应用程序),它应该只更改日志和错误消息(如果你使用 locale.setlocale(). 你应该在你的应用程序中处理客户端语言环境.从其他程序读取的程序应该在打开管道之前设置 C,所以这并不重要.

In general it should not matter. I usually prefer en_US.UTF-8, but usually it doesn't matter, and in your case (server app), it should only change log and error messages (if you use locale.setlocale(). You should handle client locales inside your app. Programs that read from other programs should set C before opening the pipe, so it should not really matter.

如您所见,这可能无关紧要.您也可以使用 POSIX 语言环境,也在 Debian 中定义.您可以使用 locale -a 获得已安装语言环境的列表.

As you see, probably it doesn't matter. You may also use POSIX locale, also define in Debian. You get the list of installed locales with locale -a.

注意:微优化将规定 C/C.UTF-8 语言环境:不翻译文件(gettext),并且简单排序规则和数字格式,但这应该只在服务器端可见.

Note: Micro-optimization will prescribe C/C.UTF-8 locale: no translation of files (gettext), and simple rules on collation and number formatting, but this should visible only on server side.

这篇关于C.UTF-8 和 en_US.UTF-8 语言环境有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆