summaryrefslogtreecommitdiff
path: root/simple-directory-handler.scm
diff options
context:
space:
mode:
Diffstat (limited to 'simple-directory-handler.scm')
-rw-r--r--simple-directory-handler.scm11
1 files changed, 8 insertions, 3 deletions
diff --git a/simple-directory-handler.scm b/simple-directory-handler.scm
index 47dbea9..68b93e8 100644
--- a/simple-directory-handler.scm
+++ b/simple-directory-handler.scm
@@ -41,9 +41,14 @@
(only srfi-14 char-set-complement char-set-delete))
(cond-expand
- (chicken-6 (import (scheme base))) ; For make-parameter, which moved from (chicken base)
+ (chicken-6 (import (scheme base) (chicken memory representation))) ; For make-parameter, which moved from (chicken base)
(else))
+(define (string-byte-length s)
+ (cond-expand
+ (chicken-6 (number-of-bytes s))
+ (else (string-length s))))
+
(define (encode-path p)
(let ((cs (char-set-delete (char-set-complement char-set:uri-unreserved) #\/)))
(uri-encode-string p cs)))
@@ -108,8 +113,8 @@
((exn i/o file) str))))
""
dir)))))
- (with-headers `((content-type text/html)
- (content-length ,(string-length str)))
+ (with-headers `((content-type #(text/html ((charset . utf-8))))
+ (content-length ,(string-byte-length str)))
(lambda ()
(write-logged-response)
(unless (eq? 'HEAD (request-method (current-request)))