NetBins 6.9.1 и странные глюки с кодировкой
Есть некоторый проект (PHP - но врядли это имеет какое то значение).
В этом проекте имеется файл, с названием lang_ru.properties, в котором как понятно из названия содержатся строки локализации, например:
3g.client.msg.thanks=Спасибо за оставленный отзыв!
3g.client.msg.feedback.sent=Ваш отзыв добавлен в базу данных и вы можете увидеть его на сайте!
но вместо этого в нем отображается:
3g.client.msg.thanks=Спасибо за оставленный отзыв!
3g.client.msg.feedback.sent=Ваш отзыв добавлен в базу данных и вы можете увидеть его на сайте!
а на сайте и соотвественно в текстовом редакторе имеем вот такую картину
3g.client.msg.thanks=\u00d0\u00a1\u00d0\u00bf\u00d0\u00b0\u00d1\u0081\u00d0\u00b8\u00d0\u00b1\u00d0\u00be \u00d0\u00b7\u00d0\u00b0 \u00d0\u00be\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00bd\u00d1\u008b\u00d0\u00b9 \u00d0\u00be\u00d1\u0082\u00d0\u00b7\u00d1\u008b\u00d0\u00b2!
3g.client.msg.feedback.sent=\u00d0\u0092\u00d0\u00b0\u00d1\u0088 \u00d0\u00be\u00d1\u0082\u00d0\u00b7\u00d1\u008b\u00d0\u00b2 \u00d0\u00b4\u00d0\u00be\u00d0\u00b1\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd \u00d0\u00b2 \u00d0\u00b1\u00d0\u00b0\u00d0\u00b7\u00d1\u0083 \u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00bd\u00d1\u008b\u00d1\u0085 \u00d0\u00b8 \u00d0\u00b2\u00d1\u008b \u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00b5\u00d1\u0082\u00d0\u00b5 \u00d1\u0083\u00d0\u00b2\u00d0\u00b8\u00d0\u00b4\u00d0\u00b5\u00d1\u0082\u00d1\u008c \u00d0\u00b5\u00d0\u00b3\u00d0\u00be \u00d0\u00bd\u00d0\u00b0 \u00d1\u0081\u00d0\u00b0\u00d0\u00b9\u00d1\u0082\u00d0\u00b5!
Что конечно не может не радовать. Поиск в гугле особо ничем не помог, рекомендации добавить в netbeans.conf -J-Dfile.encoding=UTF-8 проблему не решило. Причем проблема проявляется только в данном файле. Все остальные (с расширениями php, inc и пр.) никаких проблем, все отображается так как и должно. В свойствах проекта так же стоит UTF-8, файл сохранен в ней же, но проблема остается.
Файл кстати, был создан в eclipse, в нем тоже проблемы с кодировками, но вероятно проблему все же создал NB - на эклипсе кодировки поплыли после того, как я закомител проект.
Кто может подсказать?
Если создавать его в IDE, то всё норм, а если грузить текст, созданный где-то в другом редакторе, то ошибке вылетают.
Если переименовать файл в *.php, то кодировка становится нормальной. Видать, это особенности NetBeans обработки файлов *.properties, т.к. он при редактировании этих файлов весь текст сразу записывает в виде \u0412 (строкой) вместо 0412 (hex).
Вроде как в настройках у себя ничего не нашел, так что на крайний случай остается ручная конвертация двухбайтного представления русского символа в его 6-байтное строковое представление: 0412 (в hex) -> \u0412. В принципе, ковертор пишется просто.
Кстати, если "\u00d0\u00a1\u00d0" (первые три символа первой строки), то такого быть не должно, т.к. первые две цифры каждого символа должны быть C0 или D0, а здесь почему-то один символ (два байта в юникод) представлен как двумя разными символами (т.е. 4 байтами).
Дело в том что на Винде, нетбинс поумлочанию проэкты 1251 кодировкой делает... на никсах утф8, как в системе... у меня изза этого частро траблы были, когда приходилось один проэкт, то на вежрах, то на линуксе открывать
Дело в том что на Винде, нетбинс поумлочанию проэкты 1251 кодировкой делает... на никсах утф8, как в системе... у меня изза этого частро траблы были, когда приходилось один проэкт, то на вежрах, то на линуксе открывать
вопрос действительно глупый так как во первых - ТС (т.е. я) указал в сообщении черным по белому:
В свойствах проекта так же стоит UTF-8, файл сохранен в ней же
да и никаких по "умолчанию 1251" какгбы даже и быть не может (хотя может быть тут я и ошибаюсь) ввиду того, что Java использует UTF-8. Может быть ты с Qt перепутал? Где действительно в QtCreator такая проблема есть. Но в прочем речь не про то. Проблема действительно похоже связана с багом IDE.
А насчет по умолчанию, я не попутал. В нетбинсе версий 5.0 5.5, такое точно было.
Тогда долго думал, почему кодировка херилась, когда с винды на Линух переносил...
Файл кстати, был создан в eclipse, в нем тоже проблемы с кодировками, но вероятно проблему все же создал NB - на эклипсе кодировки поплыли после того, как я закомител проект.
Кто может подсказать?
У файла BOM маркер присутствует?
хм... ставил сейчас maven, он выдаёт такое:
Apache Maven 3.0 (r1004208; 2010-10-04 15:50:56+0400)
Java version: 1.6.0_18
Java home: c:\Program Files\Java\jre1.6.0_18
Default locale: ru_RU, platform encoding: Cp1251
OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows"
я так понимаю что всётаки cp1251 юзается под виндой в жабе?
В винде я ставил аналогичный проект - ставил и проект на utf-8 и локаль на en_US - без разницы.
З.Ы.: сорри, что вместо ТС отвечаю, просто сам заинтересовался, так как проблема в какой-то степени меня касается.
This way, if you have Yii outside web-accessible path and must add it in NetBeans to IncludePath (for example for class reference to work) you may run into this problem.
Yii - это какой-то там фреймворк.
решений по-видимому несколько:
1. Откатиться к предыдущей версии
2. запостить баг
3. бросить NetBeans.
откатываться к предыдущей версии - долго и накладно, проще перенести все на эклипс, в котором все работает нормально.
Но с эклипсом есть пару моментов. В одном из которых не могу разобраться - как в нем указать файлы, которые не нужно синхронизировать с SVN? Если файл создается локально - ему можно выставить опцию ignore. А как это сделать для файлов полученных из хранилища и модифицированных локально?
В svn немного по иному:
в конфиг файле svn -->
linux: ~/.subversion/config
У меня IntelliJ IDEA и работает прекрасно, хотя svn уже тысячу лет не узал. Пора уж пора переходить на DVCS :)
получаю сообщение:
svn propset svn:ignore