电报键盘不显示非英语字符?
telegram keyboard not showing non English languages chracters?
我正在尝试用波斯语编写一个 php 电报机器人,这是一种非英语的 utf8 语言。
当我尝试用波斯语向我的客户发送纯文本时,它工作正常
$array = [
"chat_id" => $chat_id,
"text" => $someNonEnglishText
];
$telegram->sendMessage($array);
但是当我尝试使用下面的代码发送键盘数据时,它只显示一些问号,如 ??????????????????在我的键盘按钮上
$reply_markup = $telegram->replyKeyboardMarkup([
'keyboard' => $someNonEnglishkeyboard,
'resize_keyboard' => true,
'one_time_keyboard' => true
]);
$telegram->sendMessage([
'chat_id' => $updates[0]->getMessage()->getChat()->getId(),
'text' => $something,
'reply_markup' => $reply_markup
]);
我完全确定我的 bot php 文件是 utf8 通过 运行 在终端中的以下命令
文件 myfile.php
我得到了答案:
surveyBot.php: PHP 脚本,UTF-8 Unicode 文本
有人可以帮忙吗?
ps:上面的代码在英文键盘上工作得很好。
不要使用特定的电报框架,而是使用以下代码(仅用于测试目的)。
更改 chat_id
和 BOT_TOKEN
变量。
当这段代码运行时,如果你收到健康的键盘,那么你的框架有问题 utf-8
。($telegram 属于你的代码中的 class)
<?php
$chat_id = 123; //replace with your client chat id
define('BOT_TOKEN','1234:xyz'); //replace with your token
define('BOTAPI','https://api.telegram.org/bot' . BOT_TOKEN .'/');
$reply_markup = [
'keyboard' => [[['text' => 'سلام'], ['text' => 'خدانگهدار']]],
'resize_keyboard' => true,
'one_time_keyboard' => true,
];
$data = [
'chat_id' => $chat_id,
'text' => 'utf-8 test',
'reply_markup' => json_encode($reply_markup),
];
$ch = curl_init(BOTAPI . 'sendMessage');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ($data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
我正在尝试用波斯语编写一个 php 电报机器人,这是一种非英语的 utf8 语言。 当我尝试用波斯语向我的客户发送纯文本时,它工作正常
$array = [
"chat_id" => $chat_id,
"text" => $someNonEnglishText
];
$telegram->sendMessage($array);
但是当我尝试使用下面的代码发送键盘数据时,它只显示一些问号,如 ??????????????????在我的键盘按钮上
$reply_markup = $telegram->replyKeyboardMarkup([
'keyboard' => $someNonEnglishkeyboard,
'resize_keyboard' => true,
'one_time_keyboard' => true
]);
$telegram->sendMessage([
'chat_id' => $updates[0]->getMessage()->getChat()->getId(),
'text' => $something,
'reply_markup' => $reply_markup
]);
我完全确定我的 bot php 文件是 utf8 通过 运行 在终端中的以下命令 文件 myfile.php 我得到了答案: surveyBot.php: PHP 脚本,UTF-8 Unicode 文本
有人可以帮忙吗?
ps:上面的代码在英文键盘上工作得很好。
不要使用特定的电报框架,而是使用以下代码(仅用于测试目的)。
更改 chat_id
和 BOT_TOKEN
变量。
当这段代码运行时,如果你收到健康的键盘,那么你的框架有问题 utf-8
。($telegram 属于你的代码中的 class)
<?php
$chat_id = 123; //replace with your client chat id
define('BOT_TOKEN','1234:xyz'); //replace with your token
define('BOTAPI','https://api.telegram.org/bot' . BOT_TOKEN .'/');
$reply_markup = [
'keyboard' => [[['text' => 'سلام'], ['text' => 'خدانگهدار']]],
'resize_keyboard' => true,
'one_time_keyboard' => true,
];
$data = [
'chat_id' => $chat_id,
'text' => 'utf-8 test',
'reply_markup' => json_encode($reply_markup),
];
$ch = curl_init(BOTAPI . 'sendMessage');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ($data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);