gpt4 book ai didi

php - 无法使用 Telegram Bot 发送带有俄罗斯符号的消息

转载 作者:行者123 更新时间:2023-12-05 03:09:47 33 4
gpt4 key购买 nike

我为 Telegram 制作了简单的 php 机器人,它用一条消息回复我。代码:

<?php
set_time_limit(0);

function SendMessage($message){
global $website, $chatId;
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$message);
}

$botToken = "my token";
$website = "https://api.telegram.org/bot".$botToken;

$content = file_get_contents("php://input");
$update = json_decode($content, TRUE);
$message = $update["message"];

$chatId = $message["chat"]["id"];
$text = $message["text"];

if ($text == "/start") {
SendMessage("welcome, it's nice to meet you");
} else {
SendMessage("сори");
}

一切正常,但有时我的机器人停止工作了。我通过删除所有有效的内容来开始调试它。我发现了有趣的结果。

  1. 在我的第一次尝试中,机器人没有发送任何东西。消息有俄文和英文符号。
  2. 第二,我删除了俄罗斯符号,它起作用了。
  3. 但在第三名我输入了一个俄语单词,它也起作用了。
  4. 但是当我使用第一次尝试时机器人没有做任何事情的确切词时。

images of results to make it clear

请解释一下这是怎么可能的。以及如何解决。

更新。我的脚本是用 UTF-8 编码的

最佳答案

谢谢你的建议。我通过进行适当的 URL 编码解决了这个问题。我刚刚添加了 urlencode功能:

function SendMessage($message){
global $website, $chatId;

$message = urlencode($message);

file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$message);
}

关于php - 无法使用 Telegram Bot 发送带有俄罗斯符号的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793311/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com