Skip to main content

Bug in Notepad …

One of my colleagues day before yesterday sent me a message saying try typing “Bush hid the facts” in notepad, save it, close it and reopen it. I tried the same and initially I was surprised to know that it was displaying only few boxes!!

Step 1: Start >> Run >> notepad
Step 2: Just type the text in quotes alone – “Bush hid the facts”
Step 3: Save the file [I saved it as a.txt] and close it
Step 4: Open that saved file.

I didn’t think this to be a Easter egg as I was sure that Microsoft wouldn’t unnecessarily take on US government like this. So I thought of testing it out.

As a first attempt I replaced all characters within that file with “a”. That is, my file would read “aaaa aaa aaa aaaaa” now saved it as “b.txt”, closed it and reopened it. As I have expected it showed up only boxes. So I immediately concluded that notepad isn’t good at opening files which has only a single sentence of 4 words with its size as 4-3-3-5.

I responded back to my friend with my findings!! But I need to admit that this isn’t consistent at all. In some cases it works, for some words/characters it doesn’t work.

The thing which confused me more was I was able to open the saved notepad file (with the above mentioned characters of 4-3-3-5 spacing) without any hassle from command prompt.

Step 1: Start >> Run >> cmd
Step 2: edit a.txt

Only then I was thinking in the lines of “May be this could be something to do with text encoding”. So I started to look out for the answer with the help of my friend Google. Though there were many sites which talks about it, to my knowledge the most appropriate ones are these two links.

  1. http://blogs.msdn.com/oldnewthing/archive/2004/03/24/
    95235.aspx
    --- Majorly I didn’t understand much from this post as it was above my head. But one point which I understood is, its the problem with IsTextUnicode() function which Notepad uses to find out whether the text is a Unicode or not.

If you go through those two links you would understand that people have discussed about this issue in the year 2004 itself :(

Technorati tags: , ,

Comments

Hari Baskar J said…
Vadivel:

On the same notepad, if u edit the few boxes, type "Bush hid the facts", save, close and reopen,
it shows the message properly.
so its not that 4-3-3-5 formatting.

may be it isn't consistent.
Vadivel said…
Yes Hari. It isn't related to 4-3-3-5 as what I have thought initially.

If you check the links which I have provided you could see they are using text of varied length and still gettting this error.

So its something to do with encoding only has Ray has pointed out in his blog.
Anonymous said…
Good Research... Like it :)
Anonymous said…
Hi Vadivel,

It’s because of text encoding as you have pointed out. The IsTextUnicode() function is based on some heuristics and is not 100% perfect.

But what made this bug famous is not the problem with encoding but the text for which this bug occurred. ;)

Cheers,
Sudar

Popular posts from this blog

Registry manipulation from SQL

Registry Manupulation from SQL Server is pretty easy. There are 4 extended stored procedure in SQL Server 2000 for the purpose of manupulating the server registry. They are: 1) xp_regwrite 2) xp_regread 3) xp_regdeletekey 4) xp_regdeletevalue Let us see each one of them in detail! About xp_regwrite This extended stored procedure helps us to create data item in the (server’s) registry and we could also create a new key. Usage: We must specify the root key with the @rootkey parameter and an individual key with the @key parameter. Please note that if the key doesn’t exist (without any warnnig) it would be created in the registry. The @value_name parameter designates the data item and the @type the type of the data item. Valid data item types include REG_SZ and REG_DWORD . The last parameter is the @value parameter, which assigns a value to the data item. Let us now see an example which would add a new key called " TestKey ", and a new data item under it called TestKeyValue :

Screen scraping using XmlHttp and Vbscript ...

I wrote a small program for screen scraping any sites using XmlHttp object and VBScript. I know I haven't done any rocket science :) still I thought of sharing the code with you all. XmlHttp -- E x tensible M arkup L anguage H ypertext T ransfer P rotocol An advantage is that - the XmlHttp object queries the server and retrieve the latest information without reloading the page. Source code: < html > < head > < script language ="vbscript"> Dim objXmlHttp Set objXmlHttp = CreateObject("Msxml2.XMLHttp") Function ScreenScrapping() URL == "UR site URL comes here" objXmlHttp.Open "POST", url, False objXmlHttp.onreadystatechange = getref("HandleStateChange") objXmlHttp.Send End Function Function HandleStateChange() If (ObjXmlHttp.readyState = 4) Then msgbox "Screenscrapping completed .." divShowContent.innerHtml = objXmlHttp.responseText End If End Function </ script > < head > < body > &l

Script table as - ALTER TO is greyed out - SQL SERVER

One of my office colleague recently asked me why we are not able to generate ALTER Table script from SSMS. If we right click on the table and choose "Script Table As"  ALTER To option would be disabled or Greyed out. Is it a bug? No it isn't a bug. ALTER To is there to be used for generating modified script of Stored Procedure, Functions, Views, Triggers etc., and NOT for Tables. For generating ALTER Table script there is an work around. Right click on the table, choose "Modify" and enter into the design mode. Make what ever changes you want to make and WITHOUT saving it right click anywhere on the top half of the window (above Column properties) and choose "Generate Change Script". Please be advised that SQL Server would drop actually create a new table with modifications, move the data from the old table into it and then drop the old table. Sounds simple but assume you have a very large table for which you want to do this! Then it woul