<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>hashtag &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/hashtag/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Sun, 29 Jun 2025 08:15:00 +0000</lastBuildDate>
	<language>en-GB</language>
	<copyright>© Terence Eden. 🄯 CC BY-SA. See https://shkspr.mobi/blog/copyright-and-copyleft/</copyright>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>hashtag &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Hashtag Steganography]]></title>
		<link>https://shkspr.mobi/blog/2019/12/hashtag-steganography/</link>
					<comments>https://shkspr.mobi/blog/2019/12/hashtag-steganography/#respond</comments>
				<dc:creator><![CDATA[Terence Eden]]></dc:creator>
		<pubDate>Sun, 08 Dec 2019 15:24:15 +0000</pubDate>
		<category><![CDATA[hashtag]]></category><category><![CDATA[twitter]]></category><category><![CDATA[unicode]]></category>		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=33337</guid>

					<description><![CDATA[Steganography (/ˌstɛɡəˈnɒɡrəfi/ is the practice of concealing a file, message, image, or video within another file, message, image, or video.  I recently saw someone tweeting the hashtag #ManchesُterDerby  Do you see an odd character in the middle? It&#039;s an Arabic Damma (U+064F) - a vowel character. Although it comes after the &#34;s&#34; in Manchester, it appears after the &#34;t&#34; because it is a Right-To…]]></description>
										<content:encoded>&lt;blockquote&gt;&lt;p&gt;Steganography (/ˌstɛɡəˈnɒɡrəfi/ is the practice of concealing a file, message, image, or video within another file, message, image, or video.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I recently saw someone tweeting the hashtag &lt;code&gt;#ManchesُterDerby&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Do you see an odd character in the middle? It's an Arabic Damma (&lt;a href="https://www.compart.com/en/unicode/U+064F"&gt;U+064F&lt;/a&gt;) - a vowel character. Although it comes after the "s" in Manchester, it appears after the "t" because it is a Right-To-Left (RTL) character.&lt;/p&gt;

&lt;p&gt;Yet, if you &lt;a href="https://twitter.com/hashtag/Manches%D9%8FterDerby?src=hashtag_click"&gt;click on the hashtag with the extra character&lt;/a&gt;, you get through to the same page as if you had visited the regular #ManchesterDerby page.&lt;/p&gt;

&lt;img src="https://shkspr.mobi/blog/wp-content/uploads/2019/12/Hashtag-fs8.png" alt="Twitter website showing a hashtag." width="1080" height="816" class="aligncenter size-full wp-image-33346"&gt;

&lt;h2 id="are-there-standards-for-hashtags"&gt;&lt;a href="https://shkspr.mobi/blog/2019/12/hashtag-steganography/#are-there-standards-for-hashtags"&gt;Are there standards for hashtags?&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;In 2010, when Twitter was still in its infancy, I wrote &lt;a href="https://shkspr.mobi/blog/2010/02/hashtag-standards/"&gt;a blog post on emerging Hashtag Standards&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Saying "these two strings of characters are equivalent" is a surprisingly hard problem in computer science. Is &lt;code&gt;Café&lt;/code&gt; the same as &lt;code&gt;cafe&lt;/code&gt;?  In Twitter-land, they are identical. Case-sensitivity is ignored, and accents go through decomposition, and &lt;a href="https://unicode.org/faq/normalization.html"&gt;normalisation&lt;/a&gt; is applied to produce &lt;a href="https://en.wikipedia.org/wiki/Unicode_equivalence"&gt;equivalence&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In over-simplified terms, all accents, diacritics, and modifiers are ignored.  So &lt;code&gt;#Ŕöméø&lt;/code&gt; is equivalent to &lt;code&gt;#Romeo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;And, in this case "&lt;code&gt;◌ُ&lt;/code&gt; &amp;nbsp;" , is ignored.&lt;/p&gt;

&lt;h2 id="steganography"&gt;&lt;a href="https://shkspr.mobi/blog/2019/12/hashtag-steganography/#steganography"&gt;Steganography&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;The art of hiding secret messages in otherwise innocuous texts has a long history. Let's bring it into the modern day. Suppose we want to track whether someone has control of a Twitter account - we could ask them to tweet a seemingly innocent hashtag with invisible characters in it.&lt;/p&gt;

&lt;p&gt;For example, using the diacritic "dot bẹlow" is likely to be unnoticed on a dirty screen. Did you spot it in the previous sentence?&lt;/p&gt;

&lt;p&gt;Or, for &lt;strong&gt;absolute invisibility&lt;/strong&gt;, use &lt;code&gt;͏&lt;/code&gt; . Did you see that character? Nope! It is the combining grapheme joiner (&lt;a href="https://www.compart.com/en/unicode/U+034F"&gt;U+034F&lt;/a&gt;). Completely invisible to the user, but it appears in the URL. For example &lt;a href="https://twitter.com/hashtag/t%CD%8Festing"&gt;#T͏esting&lt;/a&gt; links to &lt;code&gt;twitter.com/hashtag/t%CD%8Festing&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://medium.com/@umpox/be-careful-what-you-copy-invisibly-inserting-usernames-into-text-with-zero-width-characters-18b4e6f17b66"&gt;read Tom Ross's blog post about checking for information leakage using hidden characters&lt;/a&gt; to understand more of the theory.&lt;/p&gt;

&lt;h2 id="use-in-twitter-marketing-campaigns"&gt;&lt;a href="https://shkspr.mobi/blog/2019/12/hashtag-steganography/#use-in-twitter-marketing-campaigns"&gt;Use in Twitter Marketing campaigns&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;If you visit the page of a hashtag with ignored character, something interesting happens. Hitting the "Tweet" button pre-fills your message with the hashtag. Not the &lt;em&gt;normalised&lt;/em&gt; tag, but the one with hidden characters.&lt;/p&gt;

&lt;p&gt;Try it now! Visit &lt;a href="https://twitter.com/hashtag/%C5%94%C3%B6m%C3%A9%C3%B8"&gt;#Ŕöméø&lt;/a&gt;, you'll see all sorts of different &lt;code&gt;#Romeo&lt;/code&gt; Tweets, but hit the Tweet button and see what happens.&lt;/p&gt;

&lt;p&gt;A marketing campaign could give out identical looking hashtags to influencers - for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alice &lt;code&gt;#Campaig%CD%8Fn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Bob &lt;code&gt;#Camp%CD%8Faign&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Eve &lt;code&gt;#C%CD%8Fa%CD%8Fm%CD%8Fp%CD%8Fa%CD%8Fi%CD%8Fgn&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By seeing which of those subtly-different-but-semanticly-identical hashtags is used the most, it might be possible to see which influencer has the biggest reach.&lt;/p&gt;

&lt;h2 id="where-next"&gt;&lt;a href="https://shkspr.mobi/blog/2019/12/hashtag-steganography/#where-next"&gt;Where next?&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Hidden characters can be used for steganography in text and hashtags. You can use them to track who has copy-n-pasted specific versions of a text document, or who has clicked on a specific link to tweet out some information.&lt;/p&gt;

&lt;p&gt;But is there anything more socially useful you can think to do with them?&lt;/p&gt;
&lt;img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=33337&amp;amp;HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager"&gt;</content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/12/hashtag-steganography/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Twitter Hashtags and QR Codes]]></title>
		<link>https://shkspr.mobi/blog/2011/06/twitter-hashtags-and-qr-codes/</link>
					<comments>https://shkspr.mobi/blog/2011/06/twitter-hashtags-and-qr-codes/#comments</comments>
				<dc:creator><![CDATA[Terence Eden]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 11:14:47 +0000</pubDate>
		<category><![CDATA[hashtag]]></category><category><![CDATA[mobile]]></category><category><![CDATA[qr]]></category><category><![CDATA[search]]></category><category><![CDATA[twitter]]></category>		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=4224</guid>

					<description><![CDATA[I spotted this poster today, encouraging people to search for the Twitter hashtag &#34;#Transformers&#34;.   Wouldn&#039;t it make sense to use a QR code as well?  That way people could quickly scan, and be taken straight to the discussion, rather than have to fire up Twitter and do a manual search.  As it happens, it&#039;s slightly tricky to make a QR code which searches for a Twitter hashtag.  There are two…]]></description>
										<content:encoded>&lt;p&gt;I spotted this poster today, encouraging people to search for the Twitter hashtag "#Transformers".
&lt;img src="https://shkspr.mobi/blog/wp-content/uploads/2011/06/Transformers-Poster-Twitter-Hashtag-300x225.jpg" alt="Transformers Poster Twitter Hashtag" title="Transformers Poster Twitter Hashtag" width="300" height="225" class="aligncenter size-medium wp-image-4226"&gt;&lt;/p&gt;

&lt;p&gt;Wouldn't it make sense to use a QR code as well?  That way people could quickly scan, and be taken straight to the discussion, rather than have to fire up Twitter and do a manual search.&lt;/p&gt;

&lt;p&gt;As it happens, it's slightly tricky to make a QR code which searches for a Twitter hashtag.&lt;/p&gt;

&lt;p&gt;There are two things to note:&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;Twitter's search URLs are annoyingly different from every other search URL on the planet.&lt;/li&gt;
    &lt;li&gt;You will need to take care of URL Encoding for special characters.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;span id="more-4224"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h2 id="building-the-search-query"&gt;&lt;a href="https://shkspr.mobi/blog/2011/06/twitter-hashtags-and-qr-codes/#building-the-search-query"&gt;Building The Search Query&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;A typical Twitter search URL is&lt;/p&gt;

&lt;pre&gt;https://mobile.twitter.com/#!/search/&lt;/pre&gt;

&lt;p&gt;With the query at the end, so a search for "Transformers" would be&lt;/p&gt;

&lt;pre&gt;https://mobile.twitter.com/#!/search/Transformers&lt;/pre&gt;

&lt;h2 id="encoding-correctly"&gt;&lt;a href="https://shkspr.mobi/blog/2011/06/twitter-hashtags-and-qr-codes/#encoding-correctly"&gt;Encoding Correctly&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Hash symbols (#) need to be &lt;a href="http://en.wikipedia.org/wiki/Percent-encoding"&gt;URL Encoded&lt;/a&gt;.  In this case, the hash becomes "%23"&lt;/p&gt;

&lt;pre&gt;https://mobile.twitter.com/%23!/search/%23Transformers&lt;/pre&gt;

&lt;p&gt;However, there is a "gotcha".  Because of the... special...  way Twitter constructs its search URLs, we have to URL Encode the &lt;em&gt;percentage&lt;/em&gt; sign!  So, the "%" becomes "%25".&lt;/p&gt;

&lt;p&gt;So, our final URL becomes&lt;/p&gt;

&lt;pre&gt;https://mobile.twitter.com/%25%23!/search/%2523Transformers&lt;/pre&gt;

&lt;p&gt;Finally, if you want to use something like Google Charts to create your QR codes, you'll need the URL Encode &lt;em&gt;all&lt;/em&gt; of the : / # ! and other special characters.&lt;/p&gt;

&lt;pre&gt;https://chart.googleapis.com/chart?chs=200x200&amp;amp;cht=qr&amp;amp;chl=
   https%3A%2F%2Fmobile.twitter.com%2F%23%21%2Fsearch%2F%2523Transformers
&lt;/pre&gt;

&lt;h2 id="the-final-result"&gt;&lt;a href="https://shkspr.mobi/blog/2011/06/twitter-hashtags-and-qr-codes/#the-final-result"&gt;The Final Result&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;We end up with a QR code which can be scanned to take the user directly to the hashtag they are searching for,&lt;img src="https://shkspr.mobi/blog/wp-content/uploads/2011/06/Transformers-Hashtag-Twitter-Search.png" alt="Transformers Hashtag Twitter Search" title="Transformers Hashtag Twitter Search" width="200" height="200" class="aligncenter size-full wp-image-4225"&gt;&lt;/p&gt;
&lt;img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=4224&amp;amp;HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager"&gt;</content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2011/06/twitter-hashtags-and-qr-codes/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
