gpt4 book ai didi

php - 使用 Google Calendar API (PHP) 插入包含非 ASCII 字符的事件

转载 作者:可可西里 更新时间:2023-10-31 23:41:10 31 4
gpt4 key购买 nike

我在使用 Google Calendar API (PHP) v3 插入事件时遇到问题。

如果事件的描述包含井号 £ 等字符,则事件会在日历中创建,但描述留空。似乎对于初始 7 位字符代码(ASCII 代码 0-127)之外的所有字符都是如此。

通过使用 htmlentities 函数,我可以将井号的所有实例替换为:£

如果用户使用的是基于网络的 Google 日历版本,这很好,但移动应用程序不会将其转换回井号。

这是一个相当大的问题,因为事件通常是从使用非 ASCII 引号的 Microsoft Word 中复制/粘贴的。

是否有某种编码方法可以解决这个问题?我目前在 MySQL 数据库和 PHP 脚本中使用 UTF-8 编码。

我正在使用以下代码创建事件:

function buildGoogleEvent($title,$description,$start_time,$end_time,$location) {
// Create an event object and set some basic event information
$event = new Google_Event();
$event->setSummary($title);
$event->setLocation($location);
$event->setDescription(htmlentities($description, ENT_NOQUOTES, 'utf-8'));

// Convert the start and end date/times to ATOM format
$start_time_atom = str_replace(" ", "T", $start_time);
$end_time_atom = str_replace(" ", "T", $end_time);

// Add the event start to the event object
$start = new Google_EventDateTime();
$start->setDateTime($start_time_atom);
$start->setTimeZone('Europe/London');
$event->setStart($start);

// Add the event end to the event object
$end = new Google_EventDateTime();
$end->setDateTime($end_time_atom);
$end->setTimeZone('Europe/London');
$event->setEnd($end);

return $event;
}

这段代码插入事件:

$createdEvent = $service->events->insert($google_calendar_id, $event);

已经坐了很长一段时间所以任何帮助表示赞赏!我的 PHP 版本是 5.5.4。

最佳答案

事实证明,有一个简单的解决方案。我将 HTTP header 设置为使用 utf-8 字符集,但没有专门对我的描述进行编码。将我的描述添加到我现在正在使用的事件中:

$event->setDescription(utf8_encode($description));

关于php - 使用 Google Calendar API (PHP) 插入包含非 ASCII 字符的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19297139/

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