本地“关闭”binmode(STDOUT, ":utf8")

2024-05-30

我的脚本开头有以下块:

#!/usr/bin/perl5 -w
use strict;
binmode(STDIN, ":utf8");
binmode(STDOUT, ":utf8");
binmode(STDERR, ":utf8");

在某些子程序中,当存在其他编码(来自远程子程序)时,当接收西里尔字母或其他字符时,数据将无法正确显示。正是“binmode”导致了问题。

我可以在本地“关闭”binmode utf8,仅用于子例程吗?

我无法删除全局 binmode 设置,也无法更改远程编码。


实现这一目标的一种方法是“复制”STD句柄,设置重复的文件句柄以使用:raw层,并将其分配给本地版本STD处理。例如下面的代码

binmode(STDOUT, ':utf8');
print(join(', ', PerlIO::get_layers(STDOUT)), "\n");

{
    open(my $duped, '>&', STDOUT);
    # The ':raw' argument could also be omitted.
    binmode($duped, ':raw');
    local *STDOUT = $duped;
    print(join(', ', PerlIO::get_layers(STDOUT)), "\n");
    close($duped);
}

print(join(', ', PerlIO::get_layers(STDOUT)), "\n");

prints

unix, perlio, utf8
unix, perlio
unix, perlio, utf8

在我的系统上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

本地“关闭”binmode(STDOUT, ":utf8") 的相关文章

  • 使用 Perl 获取 值

    因此 我有一个报告工具 可以在 HTML 文件中输出作业调度统计信息 并且我希望使用 Perl 来使用这些数据 但我不知道如何单步浏览 HTML 表 我知道如何使用 jQuery 来做到这一点 find tr each function v
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb
  • 在perl中调用基本构造函数

    从 Perl 中的类构造函数调用基本构造函数的正确方法是什么 我见过这样的语法 my class shift my a shift my b shift my self class gt SUPER new a b return self
  • 如何让 mod_perl 在更改时重新加载源文件?

    我正在开发一个带有 mod 的应用程序 perl 并在每次更改代码时重新启动服务器是一个巨大的阻力 我还是想用mod perl 用于开发 因为我计划将其用于实时服务器 我在文档中没有看到有关如何执行此操作的任何内容 想法 我认为 Apach
  • 在perl中更改多维哈希的第一个键

    我在 perl 中有一个多维哈希 我想更改所选值的第一个键 例如 我有哈希 my Hash1 Hash1 1 12 1 Hash1 1 10 1 Hash1 2 31 1 Hash1 3 52 1 Hash1 3 58 1 Hash1 4
  • 在 Perl 中如何用空格填充字符串的一部分?

    你更喜欢哪个版本 usr bin env perl use warnings use strict use 5 010 my p 7 33 my prompt my key very important text my value Hell
  • 检查 Perl 函数参数值得吗?

    有很多关于MooseX 方法 签名 http search cpan org perldoc MooseX Method Signatures甚至在此之前 诸如参数 验证 http search cpan org perldoc Param
  • 难道真的没有比 POD 更好的记录 Perl 代码的方法了吗?

    我已经是一名 Perl 程序员很长时间了 但我总是对 POD 中的文档有疑问 当我在代码中使用POD注释时 代码很难阅读 当我在文件末尾使用 POD 注释时 存在文档与代码不同步的危险 我怀念类似于 Java 的文档风格 descripti
  • 是否有 Perl 脚本来实现 C++ 类 get/set 成员函数?

    今天早上我正在读这本书务实的程序员 http www pragprog com the pragmatic programmer第 3 章介绍了每个程序员都应该拥有的基本工具 他们提到了代码生成工具 他们提到了一个用于 C 程序的 Perl
  • 无法在 glassfish 3.1 中将字符集从 ISO-8859-1 更改为 UTF-8

    我在将 Web 应用程序响应中的字符集从 ISO 8859 1 默认 更改为 UTF 8 时遇到问题 我已经添加了VM选项 Dfile encoding UTF 8到 JVM 选项 但是 我仍然得到了以下 HTTP 标头作为 glassfi
  • 使用 C# 将 UTF-8 转换为 ANSI

    我是一名 NET 开发人员 被要求开发一个用 C 将 html 文件转换为 ANSI 的应用程序 ANSI 是必需的 因为转换后的文件将在 Visual Fox Pro 应用程序上运行 基本逻辑已经准备好 问题出在转换本身 我试过这段代码
  • 在 ActivePerl 上安装 Padre (IDE)?

    当我访问 Padre 的官方下载网站时 http padre perlide org download html http padre perlide org download html 我看到 Windows 中唯一的选项是下载 DWIM
  • Perl 标识符中允许使用哪些字符?

    我正在做正则表达式作业 其中一个问题是 使用在线语言参考手册确定 Java Python Perl 和 C 的整数常量和标识符的正则表达式 我不需要关于正则表达式的帮助 我只是不知道 Perl 中的标识符是什么样的 我找到了描述有效标识符的
  • 如何获取可在 \N{} 中使用的所有值来生成特定的代码点?

    在执行调试时这个问题 https stackoverflow com questions 41738241 perl unknown charname nalpha 我问自己 如何找到我可以使用的所有值 N 对于给定的 Unicode 代码
  • Perl 中围绕散列键的引号是一个好习惯吗?

    在 Perl 中使用散列时引用键是个好主意吗 我正在开发一个非常大的遗留 Perl 代码库 并尝试采用 Damian Conway 建议的许多最佳实践Perl 最佳实践 http oreilly com catalog 9780596001
  • 如何有条件地使用 Perl 中的模块?

    我想在 Perl 中做这样的事情 Module1 ReportHashFile1 ReportHashFile1 pm Module2 ReportHashFile2 ReportHashFile2 pm if Condition1 use
  • HTML 页面标题中的西班牙语字符

    我的页面标题 HTML 代码如下所示 当我在浏览器上检查时 西班牙语字符的显示与上面不完全相同 它显示页面标题如下 我尝试使用 急性 和 但它在页面标题中不起作用 这是我的网址 http www infrasistemas com uy S
  • ImportError:无法从“azure.storage.blob”导入名称“BlockBlobService”

    我正在尝试将 Azure blob 容器中的文本文件从 ANSI 编码转换为 UTF 8 编码 而不使用 python 在本地下载文件 当我尝试导入时出现以下错误块Blob服务在我的 Python 代码中处理 Azure Blob 存储 我
  • sed:用匹配的模式替换第 n 个单词?

    我有一个具有以下特征的文本文件 每行至少有三个由空格分隔的 单词 单词 可以是任何字符或字符串 我在一些行中附加了一些注释 并提出了对原始单词进行更改的初步建议 现在想使用 sed 为我进行这些更改 因此 为了提供更清晰的图片 我的文件如下
  • 如何在 Perl 中将数组数据插入 MySQL?

    我用下面的脚本解析一个文本文件 如何将数组数据插入到MySQL表中 我已经学习了 Perl MySQL DBI 连接方法 我可以成功连接到本地 MySQL 数据库 我可以使用 MySQL 命令行创建表 C Perl bin perl exe

随机推荐

  • 该页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点

    我正在调用一个rest APIHttps已部署的应用程序 到Http休息 API 我使用 Angular Js 框架用 JavaScript 编写了逻辑 Web 服务调用失败并显示以下消息 https someurl 处的页面是通过 HTT
  • SwiftUI - SwiftUI 中有等效的 popViewController 吗?

    我正在使用 SwiftUI 希望在点击按钮时能够返回到之前的视图 与我们使用的相同popViewController里面一个UINavigationController 到目前为止有提供的方法吗 我也尝试过使用NavigationDesti
  • SwiftUI 导航:如何将详细信息视图切换到不同的项目?

    我正在努力实现以下导航行为 用户可以从列表中选择一个项目 该项目会触发该项目的详细信息视图 在此详细视图上 导航栏中有一个 添加 按钮 可打开用于添加其他项目的模式表 到目前为止 一切都按预期进行 但添加项目后 我希望详细视图显示新项目 我
  • TransactionScope 的细微差别

    假设我有两个线程 它们在特定于线程的 TransactionScope 中执行一些面向数据库的代码 并具有 ReadCommissed 隔离级别 但是有一些表的数据应该共享 不应创建重复项 using var transactionScop
  • 使用 hibernate 进行动态查询

    我有一个应用程序 我需要使最终用户能够通过某种类型的向导定义选项来创建临时报告 其过程如下 1 User selects the table s he wants to query eg person project activities
  • 如何分配Profile值?

    我不知道我缺少什么 但我在 Web config 文件中添加了 Profile 属性 但无法访问 Profile Item在代码中或创建一个新的配置文件 我今天也遇到了同样的问题 学到了很多东西 Visual Studio 中有两种项目 网
  • 如何让 Jest 查看我为 MongoDB Stitch 编写的函数?

    我正在尝试 Stitch 这是一个来自 MongoDB 的无服务器 托管 JavaScript 环境 我的主要目的是帮助我学习现代 JavaScript 但我也正在尝试编写一个有用的应用程序 我编写了以下函数 并将其保存在我的 Stitch
  • 如何检测 toolkit:GestureListener Hold 何时停止?

    有什么方法可以检测到这一点吗 我想只要用户按住图标就继续执行操作 而不是使用GestureListener为此 您可以使用鼠标操作事件来检测执行操作的时间 例如 听听MouseLeftButtonDown了解用户何时触摸了图标 继续执行该操
  • 垂直合并2个数据帧[重复]

    这个问题在这里已经有答案了 我有 2 个数据框 每个数据框有 2 列 相同的列名称 我想垂直合并它们以最终得到一个新的数据框 做的时候 newdf df merge df1 how left on Col1 Col2 新的 df 仅包含以下
  • FB SDK 3.0 我是否需要扩展访问令牌还是自动的?

    基于http developers facebook com roadmap offline access removal http developers facebook com roadmap offline access remova
  • 将 R 中的时间数据绘制为各种分辨率(分钟、小时、秒等)

    我有一些 CSV 数据 例如 Timestamp Count 2009 07 20 16 30 45 10 2009 07 20 16 30 45 15 2009 07 20 16 30 46 8 2009 07 20 16 30 46 6
  • JPA - 从一列中获取不同的价值

    我有一个只有几个字段的实体 其中之一是城市名称 现在我想从该表中获取所有不同城市的列表 我怎样才能存档它 我尝试使用 DISTINCT 关键字 但它不起作用 我使用 Hibernate 作为 JPA 提供程序 但我想在纯 JPA 查询中获取
  • C / Objective C 中的 switch 语句

    我是 Objective C 的新手 但根据我对 switch 语句的了解 以下代码不应该打印任何内容 因为对我来说 似乎应该存在编译错误 但是打印了 2 我不懂为什么 有人可以解释一下吗 void test int myVar 2 swi
  • 我应该使用 htmlspecialchars 或 mysql_real_escape_string 或两者都使用[重复]

    这个问题在这里已经有答案了 我让用户输入一些信息 姓名 出生日期等 然后我必须将这些值插入数据库 我应该使用mysql real escape string http php net mysql real escape string防止 m
  • 尝试使用 Xcode 的新 UI 测试运行多个测试失败

    当我尝试在新的 Xcode beta 中同时运行多个 UI 测试时 它在第一次测试后失败 并在第一次测试后的每个测试中出现错误 UI 测试失败 应用程序状态仍未终止 有人解决这个问题了吗 我也遇到过同样的问题 看来 至少就我而言 应用程序从
  • iOS通过AVAssetWriter反转音频

    我正在尝试使用 AVAsset 和 AVAssetWriter 在 iOS 中反转音频 以下代码可以正常工作 但输出文件比输入文件短 例如 输入文件的持续时间为 1 59 但输出文件的持续时间为 1 50 且音频内容相同 void reve
  • linq 无法对“Table(req)”执行创建、更新或删除操作,因为它没有主键

    当表没有主键时 如何在表中添加行 正如您的问题标题所示 LINQ to SQL 无法在没有主键的表上执行创建 更新或删除操作 这是不可能的 所以 你可能需要使用DataContext ExecuteCommand http msdn mic
  • 共享 Owin Cookie 身份验证和基于旧版表单身份验证 cookie

    在我们公司 我们拥有大量使用 Asp net Web Forms 4 0 构建的应用程序 这些应用程序使用表单身份验证作为单点登录身份验证 配置如下
  • oracle apex从pl/sql代码重定向到模式对话框页面

    我的顶点页面中有一个页面进程 我想在页面处理完成后重定向到模式对话框页面 所以我写了代码 htp init owa util redirect url f p APP ID 34 APP SESSION NO 34 P34 CODE P34
  • 本地“关闭”binmode(STDOUT, ":utf8")

    我的脚本开头有以下块 usr bin perl5 w use strict binmode STDIN utf8 binmode STDOUT utf8 binmode STDERR utf8 在某些子程序中 当存在其他编码 来自远程子程序