UTF8输出问题Laravel PHP

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图表,这些字符是正确的: 以该格式保存到数据库时是否出错?它们是否应该以其他方式编码 或者我只是没有正确地输出它。我

我和角色和编码从来没有相处过,我想知道是否有人能帮我解决一个我正在努力解决的问题。这很可能是一个编码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”

谢谢

您可以使用和替换
\xXX
值:

产出:

"Dìaz de la Peña"
上面的代码获取与
\x
匹配的所有字符串,后跟2个十六进制字符。然后,使用
hexdec()
将它们转换为十进制值,最后使用
chr()
将它们转换为字符

您还可以将
[a-f0-9]
替换为
[:xdigit:][]

'~\\\\x([[:xdigit:]]{2})~'

以下是匹配的示例。

谢谢第一个示例非常有用,我用它制作了一个函数。我将那些UTF8字符存储在那些代码集中的数据库中是不是错了?你还有别的办法吗?谢谢你的回复。也许您可以直接用编码字符存储字符串,而不是在每次需要时对其进行编码。但我不知道您是如何存储它们的,也不知道您的数据库是如何配置的。另外,如果答案解决了你的问题,不要忘记关闭你的问题。谢谢:)
'~\\\\x([[:xdigit:]]{2})~'