- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
According to the PHP website它这样做:
encoding is the character encoding name used for the HTTP input character encoding conversion, HTTP output character encoding conversion, and the default character encoding for string functions defined by the mbstring module. You should notice that the internal encoding is totally different from the one for multibyte regex.
谁能用更简单的术语解释一下?
我的猜测是
如果第 2 点是正确的,您需要执行以下操作:
ini_set('default_charset', 'UTF-8');
如果我正确理解 3 是否意味着如果您这样做:
mb_internal_encoding('UTF-8')
你不需要做:
mb_strtolower($str, 'UTF-8');
只是:
mb_strtolower($str);
我确实在另一篇 SO 帖子上读到过 mb_strtolower($str) 不应该被信任并且您需要为每个多字节字符串函数设置编码。这是真的吗?
最佳答案
mbstring 扩展添加了绝妙的想法(</sarcasm>
)自动将所有传入数据和所有输出数据从某种编码转换为另一种编码。参见 mbstring HTTP Input and Output .它配置了 mbstring.http_input
ini 设置并使用 mb_output_handler
. mb_internal_encoding
影响这种转化。在我看来,您应该关闭这些设置并且永远不要触摸它们;我还没有找到任何可以通过这个优雅地解决的问题,并且进行隐式编码转换听起来总体上是一个糟糕的主意。特别是如果它全部通过一个全局标志 ( mb_internal_encoding
) 控制,该标志用于各种不同的上下文。
所以这是 1. 和 2.
对于 3.,的确如此,mb_internal_encoding
基本上为所有 mb_
设置默认值接受 $encoding
的函数范围。本质上它只是设置一个全局变量(内部),其他函数从中读取,仅此而已。
最后一部分提到了一个事实,即有一个单独的 mb_regex_encoding
为 mb_ereg_
设置内部编码的函数功能。
I did read on another SO post that
mb_strtolower($str)
should no be trusted and that you need to set the encoding for each multibyte string function. Is this true?
只要所有全局状态都不可信任,我同意这一点。这是非常值得信赖的:
mb_internal_encoding('UTF-8');
mb_strtolower($string);
然而,这并不是真的:
mb_strtolower($string);
看出区别了吗?如果您依赖于在其他地方正确设置的全局状态,您永远无法确定它实际上是否正确。您只需要调用一些设置 mb_internal_encoding
的第三方库在你不知情的情况下,还有你的mb_strtolower
电话会突然表现得非常不同。
关于php - PHP 的 mb_internal_encoding 究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22653119/
我有一个关于 JavaScript 语法的问题。实际上,我在自学 MEAN 堆栈教程时想出了编码(https://thinkster.io/mean-stack-tutorial#adding-aut
在我的书中它使用了这样的东西: for($ARGV[0]) { Expression && do { print "..."; last; }; ... } for 循环不完整吗?另外,do 的意义何
我已经编写了读取开关状态的代码,如果按 3 次 # 则退出。 void allkeypadTest(void) { static uint8_t modeKeyCount=0; do
因此,对于上周我必须做的作业,我必须使用 4 个 do-while 循环和 if 语句在 Java 中制作一个猜谜游戏。我无法成功完成它,类(class)已经继续,没有为我提供任何帮助。如果有人可以查
int i=1,j=0,n=10,k; do{ j+=i; i<<1; printf("%d\n",i); // printf("%d\n",12<<1); }while
此代码用于基本杂货计算器的按钮。当我按下按钮时,一个输入对话框会显示您输入商品价格的位置。我遇到的问题是我无法弄清楚如何获得 do ... while 循环以使输入对话框在输入后弹出。 我希望它始终恢
当我在循环中修改字符串或另一个变量时,它的条件是否每次都重新计算?或者在循环开始前一次 std::string a("aa"); do { a = "aaaa"; } while(a.size<10)
我刚刚写了这个,但我找不到问题。我使用代码块并编写了这个问题 error: expected 'while' before '{' token === Build finished: 1 errors
do { printf("Enter number (0-6): ", ""); scanf("%d", &Num); }while(Num >= 0 && Num 表示“超过”,<表
我有一个包含 10 个项目的 vector (为简单起见,所有项目都属于同一类,称其为“a”)。我想要做的是检查“A”不是 a) 隐藏墙壁或 b) 隐藏另一个“A”。我有一个碰撞函数可以做到这一点。
嗨,这是我的第二个问题。我有下表 |-----|-------|------|------| |._id.|..INFO.|.DONE.|.LAST.| |..1..|...A...|...N..|.
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicates: Why are there sometimes meaningless do/while and if/e
来自 wikibook在 F# 上有一小部分它说: What does let! do?# let! runs an async object on its own thread, then it i
我在 Real World Haskell 书中遇到了以下函数: namesMatching pat | not (isPattern pat) = do exists do
我有一个类似于下面的用例,我创建了多个图并使用 gridExtra 将它们排列到一些页面布局中,最后使用 ggsave 将其保存为 PDF : p1 % mutate(label2
当我使用具有 for 循环的嵌套 let 语句时,如果没有 (do (html5 ..)),我将无法运行内部 [:tr]。 (defpartial column-settings-layout [&
执行 vagrant up 时出现此错误: anr@anr-Lenovo-G505s ~ $ vagrant up Bringing machine 'default' up with 'virtua
# ################################################# # Subroutine to add data to the table Blas
我想创建一个检查特定日期格式的读取主机。此外,目标是检查用户输入是否正确,如果不正确,则提示应再次弹出。 当我刚接触编程时,发现了这段代码,这似乎很合适。我仍然在努力“直到” do {
我关注这个tutorial在谷歌云机器学习引擎上进行培训。我一步一步地跟着它,但是在将 ml 作业提交到云时我遇到了错误。我运行了这个命令。 sam@sam-VirtualBox:~/models/r
我是一名优秀的程序员,十分优秀!