簡體   English   中英

API vk.com - 鏈接附件標題編碼錯誤

[英]API vk.com - Wrong encoding in title of link attachments

我使用 vk.com 的“回調 API”

當有人在我的 vk 組中發帖時,VK 向我的服務器發送 http 請求。

帖子的文本編碼正確,但鏈接附件的標題編碼錯誤。 為什么?

這是我在“回調 API”url 中設置的 php 腳本的代碼:

<?php

error_reporting(E_ALL);
ini_set("display_errors", 1);
header('Content-Type: text/html; charset=utf-8');

$data = file_get_contents('php://input');
file_put_contents("log.txt", $data . PHP_EOL, FILE_APPEND);

在 log.txt 里面我看到:

{"group_id":216114360,"type":"wall_post_new","event_id":"d40825fa7c9b532aea813ec19bad60e68cd8a7a0","v":"5.131","object":{"id":6,"from_id":-216114360,"owner_id":-216114360,"date":1663854048,"marked_as_ads":0,"can_delete":1,"is_favorite":false,"post_type":"post","text":"Тут все в порядке с кодировкой. Но почему есть проблемы с кодировкой в title attachment?\nhttps:\/\/www.vesti.ru\/","can_edit":1,"created_by":17069557,"attachments":[{"type":"link","link":{"url":"https:\/\/www.vesti.ru\/","title":"?4??4??4??4??1?.Ru: ?4??4??4??4??4??4??1?, ?4??4??4??4??1? ?1? ?4??4??4??1? ?4??4??5?","caption":"www.vesti.ru","description":"?4??4??4??4??4??4??1? ?4??4??5? ?4??1? ?4??4??4??4??1?.Ru, ?4??4??4??4??4??4??5??5?, ?4??4??4??4??4??4??4??4??1?, ?4??4??4??1? ?1? ?4??4??4??4??1?, ?4??4??4??4??4??4??1? ?4??4??4??4??4??5? ?1? ?4??4??4??4??4??4??4??1? ?4??4??4??4??4??1?, ?4??4??4??4??4??4??1? ?5??4??4??4??4??4??4??4??1?, ?4??4??4??4??4??6?","photo":{"album_id":-27,"date":…}

['attachments'][0]['link']['title'] - 編碼錯誤。

但是 ['object']['text'] - 有正確的編碼。

如果我使用 api vk 編碼發帖是正確的。 代碼:

<?php

error_reporting(E_ALL);
ini_set("display_errors", 1);
header('Content-Type: text/html; charset=utf-8');

$access_token = "set here access_token";
$url = $url = "https://api.vk.com/method/wall.get?v=5.131&domain=r_bobruisk&access_token=" . $access_token;
$data = file_get_contents($url);
$data = json_decode($data, true);
foreach ($data['response']['items'] as $item) {
    if (isset($item['attachments'][0]['link']['title'])) {
        file_put_contents("log.txt", date("d.m.Y H:i:s") . " " . $item['attachments'][0]['link']['title'] . " " . PHP_EOL, FILE_APPEND);
        echo $item['attachments'][0]['link']['title'];
        echo "<br>";
    }
}

日志.txt:

22.09.2022 16:25:42 требуется педагог-психолог 
22.09.2022 16:25:42 Требуется дворник 
22.09.2022 16:25:42 Кассир 
22.09.2022 16:25:42 Шаурмист 
22.09.2022 16:25:42 Требуется продавец 
22.09.2022 16:25:42 Кладовщик 
22.09.2022 16:25:42 Требуется на работу 
22.09.2022 16:25:42 Требуется торговый агент 

我如何發布到我的 vk 組:

在此處輸入圖像描述

發帖結果:

在此處輸入圖像描述

只有當我使用“回調 API”時,我的編碼才錯誤。 如果我使用 vk api 編碼獲得帖子是正確的。

您需要解決“為什么編碼不同?” 向 VK 支持提問。

自己轉換編碼:

$data = file_get_contents('php://input');
$utfData = mb_convert_encoding($data, 'UTF-8');

我在 3 個月前向 VK 支持人員提出了這個問題。 我今天檢查了我的腳本和賓果游戲,它運行良好,但我沒有改變它。 我認為 VK 已經解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM