Коментирайте незаконни Unicode последователности

Веднъж работех върху приложение на Java, занимаващо се с обработка на unicode - и както обикновено, за начало пиша някакъв код и го тествам, след това коментирам работния код и добавям някои нови редове., и този процес продължава, докато намеря решение

Точният проблем, който имах, беше да коментирам незаконни Unicode низове. Някои уникодове не работеха и исках просто да го коментирам... за моя пълна изненада, нямаше да работи.

Примерен код:

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

javac UnicodeTester.java

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

Има ли начин, по който мога да коментирам незаконни Unicode последователности?? Прочетох Java Language Specification 2.2 & 2.3, Лексикалната граматика се прилага преди Синтактичната граматика. МЕСЕЧЕН ЦИКЪЛ. Но какво е най-ефективното решение, освен премахването им от изходния код??


person Sekhar    schedule 16.10.2010    source източник


Отговори (2)


Можете да го заобиколите, като вмъкнете интервал след обратната наклонена черта:

//char someCharacter = "\ ux13d";
person rsp    schedule 16.10.2010
comment
хм.. това ще работи за един знак.. Исках да кажа, че ако има дълъг низ като \ux13d\uy14x\u..... промяната им при всеки \ би била лоша идея.. Благодаря. - person Sekhar; 23.10.2010
comment
@user331225, в случай на дълги гледания, които трябва да бъдат екранирани, бих избрал уникален модел (като \/) и бих използвал замяна при избор в IDE, за да заменя всички срещания наведнъж и обратно по-късно. - person rsp; 23.10.2010
comment
.endAt(s*\ ud#ff); за това получавам грешка грешка: незаконно избягване на unicode - person s.j; 06.04.2019

Това понякога се случва, когато трябва да вградите нещо, използващо PHP код в Javascript, като например цяло число, и трябва временно да коментирате някаква незаконна стойност, но PHP все още дава грешка, тъй като PHP кодът се изпълнява преди генерирането на JS кода и се третира като коментар .

Обикновено правя нещо подобно

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

така че все пак да мога да grep за \u по-късно или grep за illegal.

person nonopolarity    schedule 16.10.2010