views:

30

answers:

2

I was once working on a Java application dealing with unicode processing - and as usual to begin with, I write some code and test it, then comment out the working code and add some new lines., and this process goes on till I find the solution

The exact issue I had was commenting out illegal Unicode strings. Some unicode wasn't working and I wanted to just comment it out.. to my utter surprise, it wouldn't work.

Example Code:

class UnicodeTester{
//char someCharacter = "\ux13d";
}

javac UnicodeTester.java

UnicodeTester.java:2: illegal unicode escape
//char someCharacter = "\ux13d";
                              ^
1 error

Is there a way where I can comment out illegal unicode sequences?? I read the Java Language Specification 2.2 & 2.3, The Lexical Grammar is enforced before the Syntactic Grammar. PERIOD. But what is the most effective workaround other than removing them from the source code??

A: 

You could work around it by inserting a space char after the backslash:

//char someCharacter = "\ ux13d";
rsp
hmm.. this would work for a single character.. I meant what if there is a long string like \ux13d\uy14x\u..... changing them at each \ would be a bad idea.. Thanks.
@user331225, in the case of long starings that need to be "escaped" I would choose a unique pattern (like `\/`) and use replace-in-selection in the IDE to replace all occurences at once, and back at a later time.
rsp
A: 

This sometimes happens when needing to embed something using PHP code into Javascript, such as an integer value, and need to comment some illegal value temporarily but PHP still gives error because the PHP code is run before the JS code is generated and as treated as comment.

Usually I do something like

class UnicodeTester{
//char someCharacter = "\\ux13d";  // illegal
}

so that I can still grep for \u later on or grep for illegal.

動靜能量