<?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>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</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[@edent]]></dc:creator>
		<pubDate>Sun, 08 Dec 2019 15:24:15 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<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><![CDATA[<blockquote><p>Steganography (/ˌstɛɡəˈnɒɡrəfi/ is the practice of concealing a file, message, image, or video within another file, message, image, or video.</p></blockquote>

<p>I recently saw someone tweeting the hashtag <code>#ManchesُterDerby</code></p>

<p>Do you see an odd character in the middle? It's an Arabic Damma (<a href="https://www.compart.com/en/unicode/U+064F">U+064F</a>) - 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.</p>

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

<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">

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

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

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

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

<p>And, in this case "<code>◌ُ</code> &nbsp;" , is ignored.</p>

<h2 id="steganography"><a href="https://shkspr.mobi/blog/2019/12/hashtag-steganography/#steganography">Steganography</a></h2>

<p>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.</p>

<p>For example, using the diacritic "dot bẹlow" is likely to be unnoticed on a dirty screen. Did you spot it in the previous sentence?</p>

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

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

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

<p>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 <em>normalised</em> tag, but the one with hidden characters.</p>

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

<p>A marketing campaign could give out identical looking hashtags to influencers - for example:</p>

<ul>
<li>Alice <code>#Campaig%CD%8Fn</code></li>
<li>Bob <code>#Camp%CD%8Faign</code></li>
<li>Eve <code>#C%CD%8Fa%CD%8Fm%CD%8Fp%CD%8Fa%CD%8Fi%CD%8Fgn</code></li>
</ul>

<p>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.</p>

<h2 id="where-next"><a href="https://shkspr.mobi/blog/2019/12/hashtag-steganography/#where-next">Where next?</a></h2>

<p>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.</p>

<p>But is there anything more socially useful you can think to do with them?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=33337&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></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[@edent]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 11:14:47 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[qr]]></category>
		<category><![CDATA[hashtag]]></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><![CDATA[<p>I spotted this poster today, encouraging people to search for the Twitter hashtag "#Transformers".
<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"></p>

<p>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.</p>

<p>As it happens, it's slightly tricky to make a QR code which searches for a Twitter hashtag.</p>

<p>There are two things to note:</p>

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

<p><span id="more-4224"></span></p>

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

<p>A typical Twitter search URL is</p>

<pre>https://mobile.twitter.com/#!/search/</pre>

<p>With the query at the end, so a search for "Transformers" would be</p>

<pre>https://mobile.twitter.com/#!/search/Transformers</pre>

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

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

<pre>https://mobile.twitter.com/%23!/search/%23Transformers</pre>

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

<p>So, our final URL becomes</p>

<pre>https://mobile.twitter.com/%25%23!/search/%2523Transformers</pre>

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

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

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

<p>We end up with a QR code which can be scanned to take the user directly to the hashtag they are searching for,<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"></p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=4224&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></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>
