emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patch] url-hexify-string does not follow W3C spec


From: David Smith
Subject: [patch] url-hexify-string does not follow W3C spec
Date: Sun, 30 Jul 2006 05:29:50 +0900
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/23.0.0 (gnu/linux)

url-hexify-string does not handle non-latin
characters. According to
http://www.w3.org/International/O-URL-code.html , the string
must be converted to hexadecimal UTF-8 and every hexadecimal
byte must be prefixed with a % character. Rewritten
url-hexify-string is below:

(defun url-hexify-string (str)
    "Escape characters in a string."
    (mapconcat
     (lambda (char)
       ;; Fixme: use a char table instead.
       (if (not (memq char url-unreserved-chars))
           (if (< char 16)
               (format "%%0%x" char)
             (let ((ins nil))
               (mapconcat 
                (lambda (charhex)
                  (progn (setq ins (not ins))
                  (if ins (concat "%" (char-to-string charhex))
                    (char-to-string charhex))))
                (format "%x" char) "")))
         (char-to-string char)))
     (encode-coding-string str 'utf-8) ""))

Important settings:
  value of $LC_ALL: ja_JP.utf8
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: ja_JP.utf8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ja_JP
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Thanks,
-- 
  David D. Smith

Attachment: pgp0GItcjbdYR.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]