在 Perl 中使用二进制语言环境

发布于 2024-11-13 11:08:38 字数 218 浏览 3 评论 0原文

出于某种原因,对我来说,Perl 正在进行字符串比较,其中

if ("hãt" eq "hat")

评估结果为 true。我认为这是因为我在代码中的某个地方使用了错误的区域设置,但我不确定在哪里(这是一个大堆栈,我不确定如何确定区域设置)。

有没有一种方法可以强制使用二进制排序规则或类似的东西进行比较,以便上面的计算结果为 false?

For some reason, for me, Perl is doing string comparisons where

if ("hãt" eq "hat")

evaluates to true. I think this is because I am using the wrong locale somewhere in my code but I'm not sure where (it's a big stack and I'm not sure how to determine the locale).

Is there a way that I can force a comparison using a binary collation or something similar, so that the above evaluates to false?

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

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

发布评论

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

评论(1

清风无影 2024-11-20 11:08:38

Perl 默认为“C”语言环境,除非在您的环境中设置了诸如 LC_ALL 之类的语言环境变量,在这种情况下您可以像这样强制它:

use POSIX;
setlocale(LC_ALL, "C");

Perl defaults to the "C" locale unless a locale variable such as LC_ALL is set in your environment, in which cse you can force it like this:

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