UTF8输出问题Laravel PHP
我和角色和编码从来没有相处过,我想知道是否有人能帮我解决一个我正在努力解决的问题。这很可能是一个编码101问题,尽管我已经搜索了文档、论坛等,但我找不到解决方案 我的环境: XAMMP(Windows)上的Laravel 5.5 我的数据库具有以下名称: “D\xc3\xacaz de la Pe\xc3\xb1a” 它会也应该输出为“Díaz de la Peña” 根据UT8图表,这些字符是正确的: 以该格式保存到数据库时是否出错?它们是否应该以其他方式编码 或者我只是没有正确地输出它。我尝试过utf8_编码和utf8_解码,我唯一得到的输出似乎是相同的“D\xc3\xacaz de la Pe\xc3\xb1a” 谢谢您可以使用和替换UTF8输出问题Laravel PHP,php,utf-8,character-encoding,Php,Utf 8,Character Encoding,我和角色和编码从来没有相处过,我想知道是否有人能帮我解决一个我正在努力解决的问题。这很可能是一个编码101问题,尽管我已经搜索了文档、论坛等,但我找不到解决方案 我的环境: XAMMP(Windows)上的Laravel 5.5 我的数据库具有以下名称: “D\xc3\xacaz de la Pe\xc3\xb1a” 它会也应该输出为“Díaz de la Peña” 根据UT8图表,这些字符是正确的: 以该格式保存到数据库时是否出错?它们是否应该以其他方式编码 或者我只是没有正确地输出它。我
\xXX
值:
产出:
"Dìaz de la Peña"
上面的代码获取与\x
匹配的所有字符串,后跟2个十六进制字符。然后,使用hexdec()
将它们转换为十进制值,最后使用chr()
将它们转换为字符
您还可以将[a-f0-9]
替换为[:xdigit:][]
:
'~\\\\x([[:xdigit:]]{2})~'
以下是匹配的示例。谢谢第一个示例非常有用,我用它制作了一个函数。我将那些UTF8字符存储在那些代码集中的数据库中是不是错了?你还有别的办法吗?谢谢你的回复。也许您可以直接用编码字符存储字符串,而不是在每次需要时对其进行编码。但我不知道您是如何存储它们的,也不知道您的数据库是如何配置的。另外,如果答案解决了你的问题,不要忘记关闭你的问题。谢谢:)
'~\\\\x([[:xdigit:]]{2})~'