如何从 File#path 获取 utf8 字符

发布于 2024-12-02 10:17:15 字数 385 浏览 0 评论 0原文

File#path 给了我 Latin-1 字符——有没有办法让它给我 utf8 字符,或者我应该转换它返回的内容?如果是这样,最好/最简单的转换方法是什么?

阐述

所以,我知道我可以这样做:

Iconv.new('UTF-8','LATIN1').iconv(File.basename(file.path))

但我想知道是否有一种更优雅的方法来告诉 File 首先给我 utf8。

这尤其重要,因为由于某种原因我在不同的系统上得到了不同的字符集。在我的 OS X 开发机器上,看起来我恢复了 utf8。在我的 Linux 服务器上,latin-1。

File#path is giving me Latin-1 characters -- is there a way to get it to give me utf8 characters, or should I just convert what it returns? If so, what's the best/easiest way to convert?

elaboration

So, I know I can do this:

Iconv.new('UTF-8','LATIN1').iconv(File.basename(file.path))

But I'm wondering if there is a more elegant way to tell File to give me utf8 to begin with.

This is especially important because for some reason I get back a different charset on different systems. On my OS X dev machine, it looks like I get back utf8. On my linux server, latin-1.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森林迷了鹿 2024-12-09 10:17:15

在文档的第一行使用神奇的注释:

#encoding: UTF-8

Use a magic comment in a first line of your document:

#encoding: UTF-8
何以笙箫默 2024-12-09 10:17:15

请参阅 $LANG 和 $LC_CTYPE(环境变量)。

这些变量还确定 1.9 中编码默认值的默认值,因此如果您稍后将代码移植到 1.9,您今天所做的更改也将起作用。

注意 Windows 在这方面略有不同,因此您可能需要更多信息来解决这个问题。

See $LANG and $LC_CTYPE (environment variables).

These variables also determine the default value for the encoding defaults in 1.9, and so changes you make today will also work if you later port your code to 1.9.

N.B. Windows is a slightly different beast in this regard, so you may need further information to tackle that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文