| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Кодировка исходника и русские символы |
| Автор: Entry_N3 26.5.2010, 21:02 |
| В Java-классе есть константа, которой присвоен литерал с русскими символами. Это константа используется для заполнения поля таблицы оракловой БД. Замечено, что если исходник этого класса в UTF-8, то в поле таблицы БД записывается нечитаемый текст. Если исходник хранится в ANSI, то в поле таблицы БД читаемое русское значение. Кто может объяснить, почему там может быть? Хотя бы предположения... |
| Автор: ivanovpv 27.5.2010, 07:39 |
| Все просто - кодировка БД должна совпадать с тем, что вы туда пишете. В данном случае - очевидно, что кодировка БД ANSI |
| Автор: Entry_N3 27.5.2010, 09:32 | ||
| ivanovpv, спасибо. Посмотрел кодировку SELECT * FROM NLS_DATABASE_PARAMETERS;
При этом, если исходник этого класса в UTF-8, то в поле таблицы БД записывается нечитаемый текст. Не логично, да? |
| Автор: Entry_N3 27.5.2010, 10:18 |
| Идеи приветствуются! |
| Автор: yeputons 27.5.2010, 16:24 |
| Может быть, Вы каким-то образом настроили компилятор javac на работу с ANSI-исходниками? Хотя Java по дефолту всегда и всё делает в юникоде. |
| Автор: Entry_N3 27.5.2010, 19:08 |
| yeputons, интересно, каким образом это возможно. |
| Автор: dobrolub 29.5.2010, 06:09 | ||
У javac естъ encoding параметер которому нужно устанавливать значение кодировки файлов. Если файлы в UTF-8, то encoding для javac должен быть UTF-8.
если -encoding не указан, javac возьмёт Default File System Encoding который и виндов один, у линукса - другой, у Мака третий. В файла strings всегда в юникоде. Лучше всего установить в IDE encoding в UTF-8, и прописать в build.xml <javac encoding="utf-8", и все другие файлы проекта тоже сделать utf-8 encoded по умолчанию. |
| Автор: Entry_N3 4.6.2010, 15:02 |
| dobrolub, спасибо. |