<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>no utf encoding when subscribing to a remote calendar</title> 
  <pubDate>Fri, 10 Apr 2026 05:02:43 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/9435</link> 
  <atom:link rel="self" type="application/rss+xml" title="no utf encoding when subscribing to a remote calendar" href="https://bugs.horde.org/ticket/9435/rss" /> 
  <description>no utf encoding when subscribing to a remote calendar</description> 
 
   
   
  <item> 
   <title>When using kronolith to subscribe to a remote calendar that </title> 
   <description>When using kronolith to subscribe to a remote calendar that is also on kronolith (same or other server), all utf characters on events display incorrectly.

I am currently using Horde Groupware Webmail Edition 1.2.7

I attach a screenshot of the problem. The two events shown are, the one that is displayed corrently in the local calendar and the one that is displayed incorrectly is from the same calendar when subscribed on it as remote calendar.
</description> 
   <pubDate>Tue, 07 Dec 2010 12:53:40 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61016</link> 
  </item> 
   
  <item> 
   <title>I found out that when retrieving the remote calendar, the ge</title> 
   <description>I found out that when retrieving the remote calendar, the generated HTTP request didn&#039;t specify any special headers, like the list of accepted character sets so I guess the response was served using a default encoding (ISO8859-1?) which breaks any unicode characters.
I applied the attached patch and the problem seems to be resolved...
</description> 
   <pubDate>Tue, 07 Dec 2010 13:41:34 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61018</link> 
  </item> 
   
  <item> 
   <title>You are not using the Git version of Kronolith.</title> 
   <description>You are not using the Git version of Kronolith.</description> 
   <pubDate>Tue, 07 Dec 2010 15:10:15 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61019</link> 
  </item> 
   
  <item> 
   <title>Updated horde installation to the latest Groupware Webmail e</title> 
   <description>Updated horde installation to the latest Groupware Webmail edition v1.2.9 and the problem still exists. You are right, it&#039;s not the Git version of Kronolith, but I checked the Git version and didn&#039;t see any changes regarding this, that&#039;s why I chose this queue, which is probably wrong...
I can&#039;t see a way of changing the Queue Version... Should I report it again using a different Queue? Horde Groupware Webmail edition?</description> 
   <pubDate>Tue, 07 Dec 2010 15:38:38 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61026</link> 
  </item> 
   
  <item> 
   <title>I can&#039;t reproduce this. Special characters are handled perfe</title> 
   <description>I can&#039;t reproduce this. Special characters are handled perfectly fine when subscribe a Kronolith calendar from another Kronolith instance.</description> 
   <pubDate>Tue, 28 Dec 2010 22:21:31 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61239</link> 
  </item> 
   
  <item> 
   <title>I can reproduce it using a command line to manually generate</title> 
   <description>I can reproduce it using a command line to manually generate a similar request using curl. 
Using the following command:

~# curl --basic -u calendar:XXXX -v &quot;http://127.0.0.1/rpc.php/kronolith/calendar/calendar.ics&quot;                             
* About to connect() to 127.0.0.1 port 80
*   Trying 127.0.0.1... * connected
* Connected to 127.0.0.1 (127.0.0.1) port 80
* Server auth using Basic with user &#039;calendar&#039;
&gt; GET /rpc.php/kronolith/calendar/calendar.ics HTTP/1.1
Authorization: Basic Y2FsZW5kYXI6Y0BsM25kQHI=
User-Agent: curl/7.12.2 (i686-pc-linux-gnu) libcurl/7.12.2 OpenSSL/0.9.7l zlib/1.2.2
Host: 127.0.0.1
Pragma: no-cache
Accept: */*

&lt; HTTP/1.1 200 OK
&lt; Date: Wed, 29 Dec 2010 10:29:53 GMT
&lt; Server: Apache
&lt; Set-Cookie: Horde=9083da515b573f377284c524da38d192; path=/; domain=127.0.0.1
&lt; Expires: Thu, 19 Nov 1981 08:52:00 GMT
&lt; Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
&lt; Pragma: no-cache
&lt; X-Dav-Powered-By: Horde WebDAV Server
&lt; Set-Cookie: imp_key=9083da515b573f377284c524da38d192; path=/; domain=127.0.0.1
&lt; Set-Cookie: auth_key=9083da515b573f377284c524da38d192; path=/; domain=127.0.0.1
&lt; Last-modified: Wed, 29 Dec 2010 10:29:53 GMT
&lt; Content-length: 554
&lt; X-WebDAV-Status: 200 OK
&lt; Content-Type: text/calendar
BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:calendar&#039;s Calendar
PRODID:-//The Horde Project//Horde_iCalendar Library\, Horde 3.3.11//EN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20101207T040000Z
DTEND:20101207T050000Z
DTSTAMP:20101229T102953Z
UID:20101207111532.10353qlamyyxehyc@213.140.132.32
CREATED:20101207T091532Z
LAST-MODIFIED:20101207T091532Z
SUMMARY:event ?? ????????
ORGANIZER;CN=calendar:mailto:calendar
DESCRIPTION:???????? ?????????.\n???????????\n???lalalslasl
CLASS:PUBLIC
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0

In this case the output is misformated... utf characters are converted to ? (An effort is made to convert the output to ISO-8859-1).
Adding an appropriate &#039;Accept-Charset&#039; header fixes the problem and the server response is utf-8 encoded as it should :

~# curl --basic -u calendar:XXXX -v -H &#039;Accept-Charset: utf-8&#039; &quot;http://127.0.0.1/rpc.php/kronolith/calendar/calendar.ics&quot;  
* About to connect() to 127.0.0.1 port 80
*   Trying 127.0.0.1... * connected
* Connected to 127.0.0.1 (127.0.0.1) port 80
* Server auth using Basic with user &#039;calendar&#039;
&gt; GET /rpc.php/kronolith/calendar/calendar.ics HTTP/1.1
Authorization: Basic Y2FsZW5kYXI6Y0BsM25kQHI=
User-Agent: curl/7.12.2 (i686-pc-linux-gnu) libcurl/7.12.2 OpenSSL/0.9.7l zlib/1.2.2
Host: 127.0.0.1
Pragma: no-cache
Accept: */*
Accept-Charset: utf-8

&lt; HTTP/1.1 200 OK
&lt; Date: Wed, 29 Dec 2010 10:30:24 GMT
&lt; Server: Apache
&lt; Set-Cookie: Horde=c8491bb24b20d1189241c065752bd59a; path=/; domain=127.0.0.1
&lt; Expires: Thu, 19 Nov 1981 08:52:00 GMT
&lt; Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
&lt; Pragma: no-cache
&lt; X-Dav-Powered-By: Horde WebDAV Server
&lt; Set-Cookie: imp_key=c8491bb24b20d1189241c065752bd59a; path=/; domain=127.0.0.1
&lt; Set-Cookie: auth_key=c8491bb24b20d1189241c065752bd59a; path=/; domain=127.0.0.1
&lt; Last-modified: Wed, 29 Dec 2010 10:30:24 GMT
&lt; Content-length: 595
&lt; X-WebDAV-Status: 200 OK
&lt; Content-Type: text/calendar
BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:calendar&#039;s Calendar
PRODID:-//The Horde Project//Horde_iCalendar Library\, Horde 3.3.11//EN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20101207T040000Z
DTEND:20101207T050000Z
DTSTAMP:20101229T103024Z
UID:20101207111532.10353qlamyyxehyc@213.140.132.32
CREATED:20101207T091532Z
LAST-MODIFIED:20101207T091532Z
SUMMARY:event ???µ ?µ?»?»?·?½?????¬
ORGANIZER;CN=calendar:mailto:calendar
DESCRIPTION:???»?»?·?½?????® ? ?µ????³??±???®.\n???£?????µ???????½?µ??\n?????»lalalslasl
CLASS:PUBLIC
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0

If you do this test, do you get different results?

The server&#039;s response is not the problem, server responds as it should according to rfcs (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html), but the problem is in the request. 
When kronolith subscribes to the remote calender is making a request identical to the first one, and not the second one, and that&#039;s what&#039;s causing the problem.

Using a browser to make the same request works fine, cause the browser sends an Accept-Charset header in the request anyway.


Thank you for your consideration
</description> 
   <pubDate>Wed, 29 Dec 2010 10:57:38 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61250</link> 
  </item> 
   
  <item> 
   <title>I get a valid UTF-8 encoded response back from the server, w</title> 
   <description>I get a valid UTF-8 encoded response back from the server, which is what you expect from a text/calendar response, if not specified otherwise. Maybe you don&#039;t have UTF-8 locale support on your system?</description> 
   <pubDate>Wed, 29 Dec 2010 15:26:37 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61256</link> 
  </item> 
   
  <item> 
   <title>I played with several options in the apache configuration (A</title> 
   <description>I played with several options in the apache configuration (AddDefaultCharset, AddCharset) in order to force apache to serve the response in the correct encoding (utf-8). While this works for files stored on the local filesystem (a simple text .ics file), it doesn&#039;t affect the php&#039;s response produced by kronolith.
So, just to clarify your previous response, when you do the test with the 2 requests (one with an Accept-Charset header and one without) you still get the same valid UTF-8 encoded response? That shouldn&#039;t be happening...
I think that by default an HTTP text/* response is ISO-8859-1 and not UTF-8, unless otherwise specified. (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.1)
What I&#039;m trying to say is that the request generated by kronolith should specify an Accept-Charset header in order to get the correct response from the server.

Thank you for everything and I wish you all a happy New Year :)</description> 
   <pubDate>Thu, 30 Dec 2010 13:51:12 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t61272</link> 
  </item> 
   
  <item> 
   <title>Cannot reproduce.</title> 
   <description>Cannot reproduce.</description> 
   <pubDate>Fri, 01 Jul 2011 20:25:19 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/9435#t66095</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
