Skip to main content

Byte order mark - Java Encoding hazards of unicode in windows

Found a peculiar situation which stranded us for quite some time.

There is a HashMap ht = {ShareStatus=True} and an ArrayList att = [ShareStatus]

When I try, ht.get(String(att.get(0)));  it returns a null.
 
Upon close inspection, I found that the key of the Hashmap is different in ISO-8859-1 encoding and looked like this :: {ShareStatus=True}

This is because of a zero-width no-break character which is used in byte-order-marking and is used at the start of certain files.

We generally use Java's String.trim() to remove extreme whitespace characters from a text but that seems to be a moot point as the handling of whitespaces is not effective to handle the different types of spaces/breaks available in unicode encoding standard.

We might have to come up with an API to handle this or rely of available API's like apache-commons-lang

For more details on white-spaces refer the links in the mail and the ones listed below:


Note:
1. This issue is almost always present in windows environment and not in linux.  
2. Please suggest the following solution for the customers using powershell for removing the no-break BOM character in the output file itself.

Comments

Popular posts from this blog

Tobi is not Madara Uchiha and that is my verdict.

1. Zetsu’s Approach Zetsu keeps the name Tobi and he is the only person who is very close to Tobi, since he is a spy and has the most information in the entire Naruto universe, he exists everywhere planted beforehand blended with the environment. Zetsu also wonders how much Kabuto knows about them, in vary tone. They’ve got something to hide other than their fighting powers. Kabuto already knows most of their secrets which they’ve got hidden even from Akatsuki members to avoid an internal clash for power. 2. Tobi’s awe of Kabuto’s Re-animation. Okay, this is very very intriguing. Madara Uchiha is afraid of something; it’s also a very best kept secret. since Kabuto promises that he hasn't told a soul. Madara who can analyze and formulate any jutsu asks “how did you do this?” Who is he afraid of, let us think back, He is not afraid of anyone. He has had only reverence for Hashirama, even then it cannot be first or the second Hokages since they were sealed by the third H...

Working!! is fun and satisfying

Working!! is an anime about the interesting things that happen in a family restaurant called Wagnaria, primarily about the staff that work there. Every character is quirky in someway or the other and it makes for some good comedy and drama. I’d like to go over the characters in the series in the order of their importance and talk about how I feel about them. Taneshima Popura: Taneshima is a high school senior who is very short, she is confused for an elementary student most of the time.  She is very upbeat and works hard, but has a huge complex about her height and is sometimes pranked upon by fellow workers in Wagnaria. Takanashi Souta: Takanashi is a junior to Taneshima and is recruited by her to work in Wagnaria at the start of the series. He likes all things tiny and deeply adores Taneshima.  He is level headed most of the time and works hard. He has three elder sisters and one younger sister whom he has to ...

Recently executed queries in SQL Server

To find out what all queries were executed recently in a sql server database, use the following queries Specific database: SELECT deqs.last_execution_time AS [Time], dest.text AS [Query], dest.* FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest WHERE dest.dbid = DB_ID(' msdb ') ORDER BY deqs.last_execution_time DESC   All Databases: SELECT deqs.last_execution_time AS [Time], dest.text AS [Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest ORDER BY deqs.last_execution_time DESC