繁体   English   中英

utf8_encode无法产生正确的结果

[英]utf8_encode does not produce right result

我的问题如下:

我存储了一个数组,其中包含诸如“ e”,“ f”等键。在某些时候,我必须获取键的值。 这很好。 但是如果我想将“í”,“é”等存储为键,则不会产生正确的结果(结果为。)。 我的页面必须使用UTF-8。 查找问题,我发现utf8_encode应该可以解决我的问题。 它没有:尽管它产生了更具可读性的字符,但它仍然与我想要的完全不同。 如果重要,phpinfo给出:

Directive   Local Value Master Value
iconv.input_encoding    ISO-8859-1  ISO-8859-1
iconv.internal_encoding ISO-8859-1  ISO-8859-1
iconv.output_encoding   ISO-8859-1  ISO-8859-1

什么可以帮助解决这个问题?

编辑 :我认为数组键会使一些数据丢失。 是真的吗 如果是,该如何预防?

Edit2:到目前为止我尝试过的解决方案:获取数组键值-失败; 创建一个具有相同键但utf-8字符值的数组: utf8_encode失败; [同时尝试] iconv_set_encoding:失败; ini_set失败; mb_internal_encoding失败。 所有都返回Ã或Ã。

我整理了一些解决方案,终于奏效了。

我要做的是:首先,我将所有解决方案加在一起添加以下内容:

ini_set('default_charset', 'UTF-8');
iconv_set_encoding("input_encoding", "UTF-8");
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");
mb_internal_encoding("UTF-8");

这没有用。

我查看了所有链接,utf8_encode-utf8_decode方法不起作用。 然后看一下函数,找到了mbstring,所以我用等效的mbstring替换了每个字符串函数。

这很好。 然后,我找出了mb_internal_encoding("UTF-8"); 足够。 所以现在可以了。 感谢所有的建议!

尝试在必须处理UTF-8数据的所有脚本的顶部添加以下行:

mb_internal_encoding(“ UTF-8”);

甚至更好的是,在php.ini文件中编辑内部编码。

尝试设置default_charset指令:

ini_set('default_charset', 'UTF-8');

这将在Content-Type标头中设置发送到浏览器的字符编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM