Langsung ke konten utama

How To Recognize Valid URL from Text

Twitter and host of Twitter clients as well as tons of other programs have to recognize valid URL's (protocol defined in RFC 1738) from plain text and hyperlink them. Unfortunately dues tyo lazyness (or lack of knowledge) of the programmers such URL detection schemes are often hare-brained and fails torecognize valid URL's properly.

URL can use a wide variety of characters and you need to recognize all of them to properly identify and isolate an URL from surrounding text. Here is a simple guide for programmers (based on RFC 1738 obviously):
In general, URLs are written as follows:
:

   A URL contains the name of the scheme being used () followed
   by a colon and then a string (the ) whose
   interpretation depends on the scheme.

   Scheme names consist of a sequence of characters. The lower case
   letters "a"--"z", digits, and the characters plus ("+"), period
   ("."), and hyphen ("-") are allowed. For resiliency, programs
   interpreting URLs should treat upper case letters as equivalent to
   lower case in scheme names (e.g., allow "HTTP" as well as "http").

URLs are written only with the graphic printable characters of the
   US-ASCII coded character set. The octets 80-FF hexadecimal are not
   used in US-ASCII, and the octets 00-1F and 7F hexadecimal represent
   control characters; these must be encoded.

   Unsafe:

   Characters can be unsafe for a number of reasons.  The space
   character is unsafe because significant spaces may disappear and
   insignificant spaces may be introduced when URLs are transcribed or
   typeset or subjected to the treatment of word-processing programs.
   The characters "<" and ">" are unsafe because they are used as the
   delimiters around URLs in free text; the quote mark (""") is used to
   delimit URLs in some systems.  The character "#" is unsafe and should
   always be encoded because it is used in World Wide Web and in other
   systems to delimit a URL from a fragment/anchor identifier that might
   follow it.  The character "%" is unsafe because it is used for
   encodings of other characters.  Other characters are unsafe because
   gateways and other transport agents are known to sometimes modify
   such characters. These characters are "{", "}", "|", "\", "^", "~",
   "[", "]", and "`".

   All unsafe characters must always be encoded within a URL. For
   example, the character "#" must be encoded within URLs even in
   systems that do not normally deal with fragment or anchor
   identifiers, so that if the URL is copied into another system that
   does use them, it will not be necessary to change the URL encoding.

   Reserved:

   Many URL schemes reserve certain characters for a special meaning:
   their appearance in the scheme-specific part of the URL has a
   designated semantics. If the character corresponding to an octet is
   reserved in a scheme, the octet must be encoded.  The characters ";",
   "/", "?", ":", "@", "=" and "&" are the characters which may be
   reserved for special meaning within a scheme. No other characters may
   be reserved within a scheme.

   Usually a URL has the same interpretation when an octet is
   represented by a character and when it encoded. However, this is not
   true for reserved characters: encoding a character reserved for a
   particular scheme may change the semantics of a URL.

   Thus, only alphanumerics, the special characters "$-_.+!*'(),", and
   reserved characters used for their reserved purposes may be used
   unencoded within a URL.

   On the other hand, characters that are not required to be encoded
   (including alphanumerics) may be encoded within the scheme-specific
   part of a URL, as long as they are not being used for a reserved
   purpose.
 
Twitter itself doesn't recognize some of them at the end. Twitter clients like Tweetdeck or Brizzly fails to recognize a ) even in the middle!
Is compliance with standards too much to expect from a 100 million dollar company?

source : http://blog.taragana.com/index.php/archive/how-to-recognize-valid-url-from-text/

Postingan populer dari blog ini

Upcoming Facebook Redesign Surface

Macam-macam Penyakit Dunia yang Dikenal oleh Masyarakat Aceh

Penyakit donya (dunia) dalam pengetahuan orang Melayu seperti di Aceh adalah penyakit yang disebabkan oleh hal-hal supranatural atau adikodrati, atau tersebab manusia yang bersekutu dengan jin, setan, atau makhuk halus yang jahat. Aceh adalah salah satu suku terbesar di Propinsi Aceh. Kebesaran suku Aceh tidak hanya tampak dari kesenian dan kepahlawanan masyarakatnya, tetapi juga pengetahuan mereka terhadap penyakit dan penyembuhannya. Bagi mereka, sakit adalah hal serius yang harus disikapi. Karena itu, mereka mengabadikannya dalam sebuah pengetahuan tentang klasifikasi penyakit dan penyembuhannya (Meuraxa, Dado 1956; Rusdi Sufi dkk, 2006; Rusdi Sufi dkk, 2004).

10 Alasan Akun Facebook di Blokir

Ada 10 alasan yang mendasar kenapa akun facebook dapat diblokir, yaitu : 1. Tidak menggunakan nama asli. Jangan pernah menggunakan nama julukan karena Facebook bisa mengetahuinya. 2. Bergabung dengan Group terlalu banyak. Facebook hanya membatasi setiap user bergabung dengan 200 group saja. 3. Terlalu banyak mengirim pesan atau Wall di sebuah Group. Buat pengalaman aja aku pernah diblokir Facebook 3 kali karena sering melakukan ini.hehe.