<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-24223743</id><updated>2012-05-19T12:24:31.149-04:00</updated><category term='tools'/><category term='webmasters'/><category term='icons'/><category term='news'/><category term='books'/><category term='gadgets'/><category term='wedding'/><category term='lost luggage'/><category term='stuff'/><category term='malware'/><category term='Creative Commons'/><category term='my projects'/><category term='privacy'/><category term='abortion'/><category term='art'/><category term='Windows'/><category term='getting things done'/><category term='open source'/><category term='time management'/><category term='lyrics'/><category term='free art downloads'/><category term='thoughts to ponder'/><category term='freedom'/><category term='my stupid husband'/><category term='survival'/><category term='RSS'/><category term='taxes'/><category term='tips'/><category term='storm'/><category term='Delphi'/><category term='video'/><category term='email'/><category term='Last.fm'/><category term='carrots'/><category term='procrastination'/><category term='recipes'/><category term='birth control'/><category term='work'/><category term='Blog Action Day'/><category term='blogs'/><category term='rice'/><category term='engaged'/><category term='kids'/><category term='generator'/><category term='humor'/><category term='online communities'/><category term='oil'/><category term='buttons'/><category term='business'/><category term='reviews'/><category term='advice'/><category term='Google Reader'/><category term='quizzes'/><category term='global warming'/><category term='CSS'/><category term='product recalls'/><category term='That New Car Smell'/><category term='economy'/><category term='inflation'/><category term='commenting'/><category term='rants'/><category term='college'/><category term='WARNINGS'/><category term='ideas'/><category term='adware'/><category term='this is broken'/><category term='patents'/><category term='Pink Floyd'/><category term='Entrecard'/><category term='people'/><category term='Firefox'/><category term='Bill Gates'/><category term='BDO'/><category term='software'/><category term='unemployment'/><category term='HTML'/><category term='marketing'/><category term='link potpourri'/><category term='net neutrality'/><category term='Project Wonderful'/><category term='blogging'/><category term='free music downloads'/><category term='pregnancy'/><category term='poverty'/><category term='google'/><category term='silly'/><category term='bloggers'/><category term='education'/><category term='consumer'/><category term='Twitter'/><category term='jazz'/><category term='Microsoft'/><category term='Barbie'/><category term='democracy'/><category term='online tools'/><category term='contests'/><category term='courier'/><category term='lists'/><category term='FriendFeed'/><category term='advertising'/><category term='the filthy rich'/><category term='photos'/><category term='site design'/><category term='censorship'/><category term='logo'/><category term='groom'/><category term='pro-choice'/><category term='tasks'/><category term='creativity'/><category term='DonationCoder'/><category term='airport'/><category term='sex'/><category term='social networking'/><category term='inspiring'/><category term='inventions'/><category term='spyware'/><category term='family life'/><category term='free stuff'/><category term='dejunking'/><category term='code'/><category term='productivity'/><category term='image'/><category term='Digg'/><category term='Facebook'/><category term='comments'/><category term='entrepreneurs'/><category term='friends'/><category term='linux'/><category term='George Carlin'/><category term='tricks'/><category term='children'/><category term='liberty'/><category term='diversity'/><category term='personal'/><category term='pro-life'/><category term='health and fitness'/><category term='guest posts'/><category term='students'/><category term='public domain'/><category term='politics'/><category term='programming'/><category term='unrealistic expectations'/><category term='AutoHotKey'/><category term='WinMX'/><category term='games'/><category term='music'/><category term='how-to'/><category term='Bad Blogger Award'/><category term='toys'/><category term='life'/><category term='ad'/><category term='photochop'/><category term='literature'/><category term='workplace parties'/><category term='gay pride'/><category term='Texas'/><category term='GTD'/><category term='clipart'/><category term='food'/><category term='comment forms'/><category term='adsense'/><category term='healthcare'/><category term='history'/><category term='women&apos;s health'/><category term='pasta'/><category term='men'/><category term='Verizon'/><category term='educational'/><category term='yarn'/><category term='independence'/><category term='John Chow'/><category term='writing'/><category term='Google Buzz'/><category term='utilities'/><category term='money'/><title type='text'>Cranial Soup</title><subtitle type='html'>Peas, carrots, green beans, and gray matter.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cranialsoup.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24223743/posts/default/-/Delphi'/><link rel='alternate' type='text/html' href='http://cranialsoup.blogspot.com/search/label/Delphi'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>App</name><uri>http://www.blogger.com/profile/04973805741360160102</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp1.blogger.com/_qlCAUZtia6Q/R3IdGtifr2I/AAAAAAAAAMs/Udg6F8D8i2g/S220/mucha-resize.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24223743.post-588153838136981773</id><published>2009-01-27T03:57:00.001-05:00</published><updated>2009-01-27T03:57:14.610-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Last.fm'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='AutoHotKey'/><category scheme='http://www.blogger.com/atom/ns#' term='public domain'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='Creative Commons'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>Converting and Encoding a URL Containing Extended ASCII Characters (Delphi utility with source)</title><content type='html'>&lt;p&gt;It has come to my attention that some programming languages do not always make it very easy to convert and encode a URL. &lt;/p&gt;  &lt;p&gt;While helping someone with bug testing and adding Last.fm support to a media player, we came across a problem with opening URL's to the correct page on last.fm's site when the title, artist or other tag info contained extended ASCII characters. &lt;/p&gt;  &lt;p&gt;Example: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Artist: Bj&amp;#248;rn Lynne &lt;/li&gt;    &lt;li&gt;Title: Methydias Cloudship &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This would be the correct URL on their site for this song: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.last.fm/music/Bj%C3%B8rn%20Lynne/_/Methydias%20Cloudship" target="_blank"&gt;http://www.last.fm/music/Bj%C3%B8rn%20Lynne/_/Methydias%20Cloudship&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But in AHK, which does not support unicode, attempting to come up with the URL resulted in this incorrect one: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.last.fm/music/Bj%F8rn%20Lynne/_/Methydias%20Cloudship" target="_blank"&gt;http://www.last.fm/music/Bj%F8rn%20Lynne/_/Methydias%20Cloudship&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The problem was that you have to convert the URL from Ansi to UTF-8 before you encode it. &lt;/p&gt;  &lt;p&gt;At first he wasn't sure if he could fix the problem, as that was what he thought he was doing in the first place. &lt;/p&gt;  &lt;p&gt;So, while he decided to take a break from bug fixing to go play with his kids, because all coding and no play can make a coder and his family miserable, I decided to go ahead and make a little helper utility for him, just in case he couldn't resolve the issue. &lt;/p&gt;  &lt;p&gt;Now I am not too sure on the particular details of how he fixed it, but he did and didn't need my little utility, after all. &lt;/p&gt;  &lt;p&gt;But I am not one to let code go to waste, and my intention was to help someone resolve a problem, so I decided that this code will still do just that, one way or another. I am pretty sure that there is someone out there somewhere that could find this useful for something. &lt;/p&gt;  &lt;p&gt;So, here it is, a small command line utility for Windows that will accept a parameter of a URL containing extended ASCII characters, convert the URL to UTF-8, then properly encode it, and finally, open that URL in the system's default browser. &lt;/p&gt;  &lt;p&gt;I have included the Delphi source in case you may need that, too. &lt;/p&gt;  &lt;p&gt;While testing this with various browsers, I noticed something peculiar. Certain browsers will display the URL in the addressbar differently than what the URL actually is. Although it is properly converted and encoded, the addressbar will display the original extended ASCII. I suppose this is to make it look pretty. &lt;/p&gt;  &lt;p&gt;The following browsers exhibited this behavior: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Firefox 3 &lt;/li&gt;    &lt;li&gt;Opera 9 &lt;/li&gt;    &lt;li&gt;Chrome 1 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Additionally, while both Firefox and Chrome copied the correct URL to the clipboard from the addressbar, Opera did not. &lt;/p&gt;  &lt;p&gt;Opera copied extended ASCII, instead. &lt;/p&gt;  &lt;p&gt;Internet Explorer did not exhibit these behaviors and displayed the actual URL used, in the addressbar. &lt;/p&gt;  &lt;p&gt;Rest assured, this application does work properly, even if your browser isn't displaying what you think it should be showing in its addressbar. &lt;/p&gt;  &lt;p&gt;Now I don't care if you use either the code or the compiled utility in an open source or close source project, for non-commercial or commercial purposes, and you don't have to give me any credit or compensation if you use it. &lt;/p&gt;  &lt;p&gt;My goal was to help someone and if this can help you in some way, feel free to use it in any way you wish. I have released both the utility and the source into the public domain.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;table cellspacing="0" cellpadding="2" width="343" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="341"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; float: left; border-bottom-width: 0px; border-right-width: 0px" alt="Creative Commons License" src="http://i.creativecommons.org/l/publicdomain/88x31.png" /&gt;This application and its source code is dedicated to the &lt;a href="http://creativecommons.org/licenses/publicdomain/" target="_blank" rel="license"&gt;Public Domain&lt;/a&gt;.             &lt;br /&gt;            &lt;br /&gt;Download: &lt;a href="http://appsapps.info/stuff/pd/encodeurl.zip"&gt;Delphi encodeURL utility with source&lt;/a&gt;             &lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;p&gt;________________________________________&lt;/p&gt;&lt;p&gt;This article is Copyright &amp;copy;2011 &lt;a href="http://cranialsoup.blogspot.com"&gt;Cranial Soup&lt;/a&gt;. All rights reserved. Republication without permission is prohibited.&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24223743-588153838136981773?l=cranialsoup.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cranialsoup.blogspot.com/feeds/588153838136981773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24223743&amp;postID=588153838136981773' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24223743/posts/default/588153838136981773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24223743/posts/default/588153838136981773'/><link rel='alternate' type='text/html' href='http://cranialsoup.blogspot.com/2009/01/converting-and-encoding-url-containing.html' title='Converting and Encoding a URL Containing Extended ASCII Characters (Delphi utility with source)'/><author><name>App</name><uri>http://www.blogger.com/profile/04973805741360160102</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp1.blogger.com/_qlCAUZtia6Q/R3IdGtifr2I/AAAAAAAAAMs/Udg6F8D8i2g/S220/mucha-resize.jpg'/></author><thr:total>5</thr:total></entry></feed>
