$message is retrieved from mysql db
The db tables have utf8_general_ci as character encoding
The following is executed with each connection:
mysqli_query($this->link,"set character set utf-8");
The php file is encoded utf-8
$message=urlencode($message);
When the following command is used:
echo $response = file_get_contents
("https://api.telegram.org/botxxxxxxxxxxxxxx/sendMessage?chat_id=-100xxxxxxx&disable_web_page_preview=TRUE&parse_mode=markdown&text=". $message);
}
If retrieved $message is stored in English: it works
If $message is stored in Arabic: it doesn’t work
If $message is entered in Arabic in the file itself (not retrieved from db): it works
What is wrong? I would appreciate your help!
2
Answers
it looks like the reason is that the browser still treats $message as "WINDOWS-256" encoded. Everything else is UTF8 encoded!
So iconv resolved the issue.
Should be:
I don't really know why, but it has done the trick!
you need to config your MySQL DB character-set manually using phpMyadmin
set it to "utf8"
or programmatically when opening your connection try this code:
you may need to check the messages in the DB tables and may need
to re-enter your msgs to the DB again if it’s misformatted because of the wrong char-set.