当前位置: 首页 > 知识库问答 >
问题:

windows下的strftime编码问题

家浩瀚
2023-03-14

在Windows下使用strftime('%b')时遇到问题。问题是在windows下该函数返回非UTF8编码的字符串(因为windows不支持UTF-8区域设置)。我在谷歌上搜索了很多关于这个主题的信息,找到了许多建议,只需使用utf8_encode(strftime('%b')),但这没有帮助。我在utf8_encode后面得到一个非常奇怪的字符串。还有另一种解决方案:使用mb_convert_encoding例如:

$month = strftime('%B');
$month = mb_convert_encoding($month, 'UTF-8', 'CP1251'); // For Russian locale

这是可行的,但只有在开发一个精确的区域时才是好的。但我需要一个通用的解决方案。你可以建议:

$month = strftime('%B');
$month = mb_convert_encoding($month, 'UTF-8', mb_detect_encoding($month));

但这不起作用,因为即使$month是非UTF8,mb_detect_encoding($month)也返回“UTF-8”。

有没有人面对这个问题并找到解决办法?我需要一个通用的解决方案,因为我要向我最喜欢的Laravel框架(它有form::SelectMonth()函数,该函数生成一个预填充月份的HTMLselect输入,该输入在Linux系统中很好地工作,但在本地化的Windows系统中失败)发出拉动请求

共有1个答案

金宣
2023-03-14

试试这个::

setlocale(LC_ALL, '');

echo(iconv('CP1251', 'UTF-8', strftime('%B')));
 类似资料:
  • 我发现了一个与构建使用C:\Windows\System32\CertenRoll.dll作为引用的应用程序有关的问题。 我已经有几个人在这里复制了它,我想在联系微软之前得到更多的信息。 我想我的问题是:有人能证实这一点吗,或者如果证实了,他们破坏了向后兼容性?

  • 最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)在使用Ant的原始serverA上编译良好( ),但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,如“用于编码GBK的Unmappable character”(Unmappable character for encoding GBK)。(JDK版本相同)

  • 本文向大家介绍ubuntu 下编译C++代码出现的问题解决,包括了ubuntu 下编译C++代码出现的问题解决的使用技巧和注意事项,需要的朋友参考一下 同样的代码, 同样的makefile 文件 1)在mac 下顺利编译; 2)在新的ubuntu 下,编译失败; 报错信息: string.h 中各种 函数找不到; makefile: ------------ 报错: 已经做的尝试: 在$PATH

  • 安装编译器或者 IDE(集成开发环境),也叫搭建开发环境。Windows 下的C语言 IDE 众多,多如牛毛,初学者往往不知道该如何选择,本节就来给大家指点迷津。 1) Visual Studio Windows 下首先推荐大家使用微软开发的 Visual Studio(简称 VS),它是 Windows 下的标准 IDE,实际开发中大家也都在使用。为了适应最新的 Windows 操作系统,微软每

  • 本文向大家介绍浅谈编码,解码,乱码的问题,包括了浅谈编码,解码,乱码的问题的使用技巧和注意事项,需要的朋友参考一下 在开发的过程中,我们不可避免的会遇到各种各样的编码,解码,或者乱码问题,很多时候,我们可以正常的解决问题,但是说实在的,我们有可能并不清楚问题到底是怎么被解决的,秉承知其然,更要知其所以然的理念,经过一番研究,就有了下面的这篇文章,鉴于本人功力尚浅,有错误请给予纠正 :-) 编码解码

  • 我有一个(非常简单的)java Spring Boot/REST服务,它从输入中呈现PDF并使用IntelliJ对其进行测试。 我使用pdfbox作为创建此类pdf的工具。 一个特点是,除了它想要的常规内容外,客户端还可以将附件作为字节[]提供。 当用户尝试该服务时,最终文档只有附件部分的空白页。 使用IntelliJ和HTTP REST客户端进行了尝试,但遇到了相同的问题 当我注意到使用post