You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API返回带Unicode转义的UTF-8文本,如何正确显示重音字符?

解决API返回Unicode转义字符的显示问题

你的问题核心在于用错了处理函数——utf8_encode()是用来把ISO-8859-1编码的字符串转成UTF-8,但你拿到的是带Unicode转义序列(比如\u00ea)的ASCII字符串,这个函数完全不适用,反而可能越搞越乱。

直接用下面的方法处理:

方法一:用json_decode解析转义序列

如果API返回的纯文本里包含\uXXXX这类Unicode转义,把字符串包装成合法的JSON格式后解码,就能自动把转义序列转换成对应的UTF-8字符:

// 假设$api_str是API返回的带转义的字符串
$api_str = 'Sonhar com um bar indica que voc\u00ea receber\u00e1 um aviso no trabalho que mudar\u00e1 seus planos para o pr\u00f3ximo ano. Voc\u00ea sentir\u00e1 que tudo est\u00e1 fluindo ao seu redor em uma dire\u00e7\u00e3o positiva. Voc\u00ea brinca com as emo\u00e7\u00f5es, mas ter\u00e1 que devolver algo, e n\u00e3o exatamente material. Seria \u00f3timo se voc\u00ea passasse o dia com ela e organizasse uma noite rom\u00e2ntica. Sensa\u00e7\u00e3o, tudo o que entra em voc\u00ea atrav\u00e9s dos sentidos, abre sua mente.';

// 包装成JSON字符串(处理特殊字符避免解析错误)
$json_format = '"' . addcslashes($api_str, '"\\') . '"';
// 解码得到正常UTF-8文本
$normal_str = json_decode($json_format);

// 直接输出(已经设置过Content-Type头的话无需额外处理)
echo $normal_str;

方法二:如果API返回的是完整JSON响应

如果API本身返回的是JSON格式(比如整个响应是一个JSON对象),直接解析整个响应即可,不用单独处理字符串:

// 假设$api_response是API返回的完整JSON内容
$api_response = file_get_contents('你的API地址');
// 解析JSON,第二个参数true返回数组,false返回对象
$data = json_decode($api_response, true);
// 取出需要的文本字段,转义已自动处理
echo $data['content']; // 这里替换成实际的字段名

注意事项

  • 确保你的PHP文件本身是UTF-8编码(无BOM),避免额外编码冲突
  • 之前设置的header('Content-Type: text/html; charset=utf-8');和HTML meta标签保留,这部分是对的

内容的提问来源于stack exchange,提问作者Prinple Vrlo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:30:50