setlocale(LC_CTYPE, "de_DE.UTF8")
或
setlocale(LC_CTYPE, "de_DE.UTF-8")
有无破折号?我在答案中都看到过。
答案 0 :(得分:3)
我运行locale -a
并使用它输出的字符串。在OS X 10.9上,我得到de_DE.UTF-8
。在Debian 6上,我得到de_DE.utf8
。另一方面,dpkg-reconfigure locales
使用de_DE.UTF-8
。最安全的方法可能是检查setlocale
的返回值,如果失败则尝试不同的变体。
尽管如此,所有版本通常都应该有效:有或没有破折号,大写或小写。
答案 1 :(得分:2)
编码名称为UTF-8。
但在这种情况下,两个参数都是正确的,他们正在为你做同样的工作
答案 2 :(得分:0)
这是一个以编程方式解决它的实用解决方案。 setlocale
失败时,返回false。
if (!setlocale(LC_ALL, str_replace('utf-8', 'utf8', $locale))
&& !setlocale(LC_ALL, str_replace('utf8', 'utf-8', $locale))) {
/* fail gracefully */
}
/* your locale has been set up properly
在我的情况下,一个可以在我们的Mac上工作,另一个可以在Linux CI盒上工作,所以这个解决方案可以在两个测试中传递。
顺便说一句;小心LC_ALL。设置您需要的最弱范围的区域设置。
答案 3 :(得分:0)
您实际上可以将值数组传递给import matplotlib as plt
dpi = 300 # Recommended to set between 150-300 for quality image preview
plt.rcParams['figure.dpi'] = dpi
。我在OSX上开发并在Linux上运行的主机上进行测试时遇到了这个问题。所以现在我这样做:setLocale()
匹配的第一个是go。
文档:https://secure.php.net/setlocale