首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件读写

文件读写
EN

Stack Overflow用户
提问于 2013-07-29 16:37:43
回答 1查看 104关注 0票数 0

关于linux语言环境,我有很多问题,特别是不同的编码。1.在bash中执行以下命令时使用的是哪个区域设置?

代码语言:javascript
复制
// Привет - Russian "Hello"
echo "Привет" > ./test.txt 

据我所知,它应该使用由locale命令获得的locale。

经过一些改变环境的实验,我总是通过cat ./test.txt在我的控制台上得到正确的答案。,但为什么?为什么当我从"ru_RU.iso88595"**,** "ru_RU.koi8r"**,等更改区域设置时,总是得到正确的结果?**

这是否意味着,在现实中,我的地区没有改变?还是文件编码与当前区域设置无关?

注意:,当我按export LC_ALL="ru_RU.iso88595"设置LC_ALL时,我得到了bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.iso88595),但是echo $?给了0,然后locale返回了新的区域设置。这个地方真的布置好了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 20:55:37

当我在bash中执行以下命令时,使用的是哪个区域设置? echo "Привет" > ./test.txt

没有。数据是逐字写入的,因为它出现在引号之间。如果文件是UTF-8,它将被写入UTF-8.

为什么当我从"ru_RU.iso88595“、"ru_RU.koi8r”等更改区域设置时,我总是得到正确的结果?

cat somefile只是逐字地将文件转储到终端。不涉及cat和/或shell的区域设置。终端以配置的任何方式显示它(如果使用screen,它有自己的输入和输出配置,与shell和终端分开)。

我得到bash:警告: setlocale: LC_ALL:无法更改地区(ru_RU.iso88595)

这是来自Bash的一条消息,它说将新的区域设置应用到当前会话有问题。您可能已经设置了区域设置,但设置为无效值。确保它出现在locale -a的输出中,否则它没有安装。

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

https://stackoverflow.com/questions/17929424

复制
相关文章

相似问题

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