Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Java: Русские буквы и не только…

Совок большой.
Длина 21,5 см. Расцветка в ассортименте, без возможности выбора.
21 руб
Раздел: Совки
Ночник-проектор "Звездное небо и планеты", фиолетовый.
Оригинальный светильник - ночник - проектор. Корпус поворачивается от руки. Источник света: 1) Лампочка (от карманных фонариков) 2) Три
330 руб
Раздел: Ночники
Гуашь "Классика", 12 цветов.
Гуашевые краски изготавливаются на основе натуральных компонентов и высококачестсвенных пигментов с добавлением консервантов, не
170 руб
Раздел: 7 и более цветов

Введение Некоторые проблемы настолько сложны, что нужно быть очень умным и очень хорошо информированным, чтобы не быть уверенным в их решении. Лоренс Дж. Питер Pe er's Alma ac Кодировки Когда я только начинал программировать на языке C, первой моей программой (не считая HelloWorld) была программа перекодировки текстовых файлов из основной кодировки ГОСТ-а (помните такую? :-) в альтернативную. Было это в далёком 1991-ом году. С тех пор многое изменилось, но за прошедшие 10 лет подобные программки свою актуальность, к сожалению, не потеряли. Слишком много уже накоплено данных в разнообразных кодировках и слишком много используется программ, которые умеют работать только с одной. Для русского языка существует не менее десятка различных кодировок, что делает проблему ещё более запутанной. Откуда же взялись все эти кодировки и для чего они нужны? Компьютеры по своей природе могут работать только с числами. Для того чтобы хранить буквы в памяти компьютера надо поставить в соответствие каждой букве некое число (примерно такой же принцип использовался и до появления компьютеров - вспомните про ту же азбуку Морзе). Причём число желательно поменьше - чем меньше двоичных разрядов будет задействовано, тем эффективнее можно будет использовать память. Вот это соответствие набора символов и чисел собственно и есть кодировка. Желание любой ценой сэкономить память, а так же разобщённость разных групп компьютерщиков и привела к нынешнему положению дел. Самым распространённым способом кодирования сейчас является использование для одного символа одного байта (8 бит), что определяет общее кол-во символов в 256. Набор первых 128 символов стандартизован (набор ASCII) и является одинаковыми во всех распространённых кодировках (те кодировки, где это не так уже практически вышли из употребления). Англицкие буковки и символы пунктуации находятся в этом диапазоне, что и определяет их поразительную живучесть в компьютерных системах :-). Другие языки находятся не в столь счастливом положении - им всем приходится ютиться в оставшихся 128 числах. U icode В конце 80-х многие осознали необходимость создания единого стандарта на кодирование символов, что и привело к появлению U icode. U icode - это попытка раз и навсегда зафиксировать конкретное число за конкретным символом. Понятно, что в 256 символов тут не уложишься при всём желании. Довольно долгое время казалось, что уж 2-х то байт (65536 символов) должно хватить. Ан нет - последняя версия стандарта U icode (3.1) определяет уже 94140 символов. Для такого кол-ва символов, наверное, уже придётся использовать 4 байта (4294967296 символов). Может быть и хватит на некоторое время. :-) В набор символов U icode входят всевозможные буквы со всякими чёрточками и припендюльками, греческие, математические, иероглифы, символы псевдографики и пр. и пр. В том числе и так любимые нами символы кириллицы (диапазон значений 0x0400-0x04ff). Так что с этой стороны никакой дискриминации нет. Если Вам интересны конкретные кода символов, для их просмотра удобно использовать программу "Таблица символов" из Wi . Вот, например, диапазон кириллицы: Если у Вас другая OS или Вас интересует официальное толкование, то полную раскладку символов (char s) можно найти на официальном сайте U icode ( Типы char и by e В Java для символов выделен отдельный тип данных char размером в 2 байта.

Это часто порождает путаницу в умах начинающих (особенно если они раньше программировали на других языках, например на C/C ). Дело в том, что в большинстве других языков для обработки символов используются типы данных размером в 1 байт. Например, в C/C тип char в большинстве случаев используется как для обработки символов, так и для обработки байтов - там нет разделения. В Java для байтов имеется свой тип - тип by e. Таким образом C-ишному char соответствует Java-вский by e, а Java-вскому char из мира C ближе всего тип wchar . Надо чётко разделять понятия символов и байтов - иначе непонимание и проблемы гарантированны. Java практически с самого своего рождения использует для кодирования символов стандарт U icode. Библиотечные функции Java ожидают увидеть в переменных типа char символы, представленные кодами U icode. В принципе, Вы, конечно, можете запихнуть туда что угодно - цифры есть цифры, процессор всё стерпит, но при любой обработке библиотечные функции будут действовать исходя из предположения что им передали кодировку U icode. Так что можно спокойно полагать, что у типа char кодировка зафиксирована. Но это внутри JVM. Когда данные читаются извне или передаются наружу, то они могут быть представлены только одним типом - типом by e. Все прочие типы конструируются из байтов в зависимости от используемого формата данных. Вот тут то на сцену и выходят кодировки - в Java это просто формат данных для передачи символов, который используется для формирования данных типа char. Для каждой кодовой страницы в библиотеке имеется по 2 класса перекодировки (By e oChar и Char oBy e). Классы эти лежат в пакете su .io. Если, при перекодировке из char в by e не было найдено соответствующего символа, он заменяется на символ ?. Кстати, эти файлы кодовых страниц в некоторых ранних версиях JDK 1.1 содержат ошибки, вызывающие ошибки перекодировок, а то и вообще исключения при выполнении. Например, это касается кодировки KOI8 R. Лучшее, что можно при этом сделать - сменить версию на более позднюю. Судя по Su -овскому описанию, большинство этих проблем было решено в версии JDK 1.1.6. До появления версии JDK 1.4 набор доступных кодировок определялся только производителем JDK. Начиная с 1.4 появилось новое API (пакет java. io.charse ), при помощи которого Вы уже можете создать свою собственную кодировку (например поддержать редко используемую, но жутко необходимую именно Вам). Класс S ri g В большинстве случаев для представления строк в Java используется объект типа java.la g.S ri g. Это обычный класс, который внутри себя хранит массив символов (char[]), и который содержит много полезных методов для манипуляции символами. Самые интересные - это конструкторы, имеющие первым параметром массив байтов (by e[]) и методы ge By es(). При помощи этих методов Вы можете выполнять преобразования из массива байтов в строки и обратно. Для того, чтобы указать какую кодировку при этом использовать у этих методов есть строковый параметр, который задаёт её имя. Вот, например, как можно выполнить перекодировку байтов из КОИ-8 в Wi dows-1251: // Данные в кодировке КОИ-8 by e[] koi8Da a = .;

// Преобразуем из КОИ-8 в U icode S ri g s ri g = ew S ri g(koi8Da a,"KOI8 R"); // Преобразуем из U icode в Wi dows-1251 by e[] wi Da a = s ri g.ge By es("Cp1251"); Список 8-ми битовых кодировок, доступных в современных JDK и поддерживающих русские буквы Вы можете найти ниже, в разделе "8-ми битовые кодировки русских букв". Так как кодировка - это формат данных для символов, кроме знакомых 8-ми битовых кодировок в Java также на равных присутствуют и многобайтовые кодировки. К таким относятся U F-8, U F-16, U icode и пр. Например вот так можно получить байты в формате U icodeLi leU marked (16-ти битовое кодирование U icode, младший байт первый, без признака порядка байтов): // Строка U icode S ri g s ri g = "."; // Преобразуем из U icode в U icodeLi leU marked by e[] da a = s ri g.ge By es("U icodeLi leU marked"); При подобных преобразованиях легко ошибиться - если кодировка байтовых данных не соответствуют указанному параметру при преобразовании из by e в char, то перекодирование будет выполнено неправильно. Иногда после этого можно вытащить правильные символы, но чаще всего часть данных будет безвозвратно потеряна. В реальной программе явно указывать кодовую страницу не всегда удобно (хотя более надёжно). Для этого была введена кодировка по умолчанию. По умолчанию она зависит от системы и её настроек (для русских виндов принята кодировка Cp1251), и в старых JDK её можно изменить установкой системного свойства file.e codi g. В JDK 1.3 изменение этой настройки иногда срабатывает, иногда - нет. Вызвано это следующим: первоначально file.e codi g ставится по региональным настройкам компьютера. Ссылка на кодировку по умолчанию запоминается в нутрях при первом преобразовании. При этом используется file.e codi g, но это преобразование происходит ещё до использования аргументов запуска JVM (собсно, при их разборе). Вообще-то, как утверждают в Su , это свойство отражает системную кодировку, и она не должна изменяться в командной строке (см., например, комментарии к BugID 4163515) Тем не менее в JDK 1.4 Be a 2 смена этой настройки опять начала оказывать эффект. Что это, сознательное изменение или побочный эффект, который может опять исчезнуть - Su -овцы ясного ответа пока не дали. Эта кодировка используется тогда, когда явно не указанно название страницы. Об этом надо всегда помнить - Java не будет пытаться предсказать кодировку байтов, которые Вы передаёте для создания строки S ri g (так же она не сможет прочитать Ваши мысли по этому поводу :-). Она просто использует текущую кодировку по умолчанию. Т.к. эта настройка одна на все преобразования, иногда можно наткнуться на неприятности. Для преобразования из байтов в символы и обратно следует пользоваться только этими методами. Простое приведение типа использовать в большинстве случаев нельзя - кодировка символов при этом не будет учитываться. Например, одной из самых распространённых ошибок является чтение данных побайтно при помощи метода read() из I pu S ream, а затем приведение полученного значения к типу char: I pu S ream is = .; i b; S ri gBuffer sb = ew S ri gBuffer(); while( (b=is.r

Потом поднялся из подвала в просторное помещение магазина, прошел в свой кабинет. Только ковры указывали, что дело происходит на Востоке. В остальном кабинет был типичным американским бюро. 68 - Как дела, головорезы? - И Томсон здорово постарел за эти годы. Он только что вошел сквозь тяжелые металлические двери и остановился посреди класса. За столиками перед передатчиками сидели ученики. На доске, такой же, как в обычной школе, были выведены русские буквы и их значение в виде тире и точек. Увидев Томсона, "головорезы" вскочили с мест. Вытянулись. Руки по швам. - Сегодня вы пойдете на настоящее дело! - выкрикивал Томсон. - Значит, заработаете настоящие деньги... Но надо будет работать. Работать, "гвардия"! он ухмыльнулся. - Боб проводит вас до границы и устроит прощальный ужин. Боб, не вздумайте экономить на ужине. - Из класса цепочкой по одному! - рявкнул Боб. 69 Гаджи сидел за столом. Тяжелые морщины перечеркнули лоб. Он сжал руку в кулак и положил на него голову. Вероятно, Томсон вновь отправляет людей. А он?.

1. "Не только самурай и гейша"

2. Первоисточник мира. Анаксимандр о воде и не только

3. Янцзы: о наводнениях и не только

4. Тиснение "горячее" и не только…

5. Музыкальный театр Италии первой половины XVII века: не только опера

6. О русском языке не по учебнику: летняя работа над ошибками
7. Организация договорной работы в компании – забота не только юридической службы
8. "Счастье не в счастье, а в его достижении..." Ф.М.Достоевский. (По одному из произведений русской литературы)

9. Почему русские не улыбаются

10. Утерянные буквы русского языка

11. Петродворец - русский "Версаль"

12. Русская архитектура XVII века

13. Стратегия войны Наполеона и тактика обороны русских войск

14. Великие русские путешественники

15. Нелегальная миграция в России и методы борьбы с ней

16. Викинги : жизнь, быт, культура, связь с русской нацией

Доска магнитно-маркерная, 90x120 см, алюминиевая рамка, полочка.
Доска магнитно-маркерная, размер 90x120 см. Картонная основа. Имеет универсальную поверхность, позволяющую наносить информацию
2380 руб
Раздел: Доски магнитно-маркерные
Умные кубики. Уши, лапы и хвосты. 50 игр для развития интеллекта.
IQ-кубики «Уши, лапы и хвосты» — это универсальный набор для развития дошкольника. Выполняя игровые задания, ребёнок учится
306 руб
Раздел: Развивающие игры с кубиками
Конструктор металлический для уроков труда №1, 206 элементов.
Конструктор раскрывает перед ребенком неограниченные возможности моделирования и создания множества своих собственных
313 руб
Раздел: Магнитные и металлические конструкторы

17. Преступление и наказание по "Русской Правде"

18. Русская Правда - кодекс древнерусского права

19. Тамбовский край в первой русской революции

20. Завершение политического объединения русских земель во второй половине XV в. – первой трети XVI века и создание единого государства

21. Кодификация Русского Права в первой половине XIX века

22. Русская армия от Петра 1 до Александра 2
23. Русская Правда - кодекс древнерусского феодального права
24. Русская архитектура XVII века

25. Мужество и героизм русских воинов в Бородинском сражении, значение победы для укрепления мощи Российского государства

26. Социально-экономические предпосылки образования русского централизованного государства

27. Государственно-политические аспекты деятельности Русского Общевоинского союза

28. Русская правда. Законодательство СССР 1941-1953гг.

29. Русская Правда

30. Норманнская теория происхождения русской государственности ее апологеты и критики

31. Проблема нераспространения и не использования оружия массового уничтожения (ОМУ)

32. Русская эмиграция во Франции

Блюдо для блинов с крышкой "Лавандовый букет", 23 см.
Блюдо для блинов с крышкой прекрасно впишется в кухонный интерьер. Материал: доломит. Диаметр: 23 см.
737 руб
Раздел: Блюда
Прыгунки 3 в 1 "Спортбэби" (прыгунки, качели, тарзанка) с качельным крюком.
Характеристики: Петля из стропы для крепления на крепежный крюк или на специальный зажим. Пряжка для регулировки высоты (при правильной
659 руб
Раздел: Прыгунки, вожжи
Глобус Земли физический + политический, с подсветкой, 250 мм.
Глобус Земли физический + политический, с подсветкой. Диаметр: 250 мм. Расцветка подставки в ассортименте, без возможности выбора!
769 руб
Раздел: Глобусы

33. Способы перевода просторечия, использованного в романе А. Силлитоу "Ключ от двери", на русский язык

34. Пословицы, поговорки английского языка. Их значение, употребление и русские эквиваленты

35. Сопоставительный анализ фразеологических единиц с компонентом “mund”/”рот” в немецком и русском языках

36. Русские заимствования в английском языке (Russian borrowings in English language)

37. Сниженная лексика английского языка и ее перевод на русский язык (на примере перевода новеллы С.Кинга "Долгий путь")

38. Нестеров М.В.- русский художник
39. Трагическая роль русского народа в произведении А.С. Пушкина "Борис Годунов", в опере М.П. Мусоргского "Борис Годунов" и картине В.И. Сурикова "Боярыня Морозова"
40. История русской матрешки

41. Русская иконопись. Язык икон

42. Русское искусство 18 века

43. Особенности русской живописи XIX века

44. И.Е. Репин в истории русской живописи

45. Русское изобразительное искусство XIX – XX веков

46. Федор Волков - отец русского театра

47. Монастыри - как центры русской культуры

48. Проблемма адаптации "чужого" в русской культуре XVIII века

Подставка для украшений Jardin D'Ete "Нежная сирень".
Подставка для ювелирных изделий не оставит равнодушной ни одну любительницу изысканных вещей. Сочетание оригинального дизайна и
967 руб
Раздел: Подставки для украшений
Умные кубики. Силуэты. 50 игр для развития интеллекта.
IQ-кубики «Силуэты» — это универсальный набор для развития дошкольника. В процессе игры он учится конструировать, систематизировать,
306 руб
Раздел: Развивающие игры с кубиками
Мел круглый "White Peps", 100 штук, белый.
Высококачественный мел из карбоната кальция. Для детского творчества и школы. Не крошится. Технология «меньше пыли». Круглая форма
445 руб
Раздел: Мел

49. Культура русской дворянской усадьбы

50. Русская культура XVI века

51. Русская культура в начале XX века: Символизм. Религиозные течения в философии

52. Русское юродство как феномен культуры, его национальное значение

53. Средоточие русского образования

54. История русского календаря
55. Русская культура 9-13 вв.
56. Серебряный век в русской литературе и искусстве

57. Русская средневековая эстетика

58. Театр "Русский Стиль" (г. Орел)

59. И.Е. Репин в истории русской живописи

60. Русский народный фольклор

61. Особенности русского языка эпохи 1917г.

62. Русский язык (Шпаргалка)

63. Официально-деловой стиль русского языка

64. Русский язык

Шар предсказаний, 12 см.
Если вы из той породы людей, которые предпочитают сто раз подумать, тогда купить магический шар будет неплохим вариантом. Он не примет
565 руб
Раздел: Прочее
Качели Фея "Чарли 3 в 1".
Многофункциональная модель качелей Фея Чарли 3 в 1 трансформируется в: - качели, - стульчик, - шезлонг. Универсальные качели предназначены
2935 руб
Раздел: Качели, кресла-качалки, шезлонги
Вожжи - страховка для ребенка Спортбэби "Комфорт".
Удобный держатель и мягкий нагрудник обеспечит необходимый комфорт Вам и Вашему ребенку. Предохраняют Вашу спину от перегрузки, а малыша
316 руб
Раздел: Прыгунки, вожжи

65. Сборник сочинений русской литературы с XIX века до 80-х годов XX века

66. Сатирическое изображение русской действительности 30х годов в романе "Мастер и Маргарита"

67. Родина в жизни и творчестве русских писателей XIX-XX веков

68. Нравственные проблемы общества в современной литературе (Русские люди в рассказах В.М. Шукшина)

69. Русские критики о Л.Н. Толстом

70. Феномен Кавказа в русской литературе
71. Анализ акцента литовца при произнесении русского текста
72. Диалектологический словарь русского языка

73. Категория наклонения глагола в русском и казахском языках

74. Место Михаила Зощенко в русской литературе

75. Многозначность и богатство русской лексики

76. Проза Д.И. Фонвизина в истории русского литературного языка

77. Русская риторика

78. Русский символизм: лекция из курса д-ра Валюлис

79. Серебряный век русской литературы. В. Хлебников

80. Синонимия русского и немецкого языков. Проблематика подбора, перевода и классификации синонимов на материале романа Г. Фаллады "Каждый умирает в одиночку

Органайзер для обуви "Сороконожка".
Органайзер "Сороконожка", который можно повесить на дверное полотно, стену и другие поверхности, будет содержать всю Вашу обувь
1056 руб
Раздел: Полки напольные, стеллажи
Фоторамка "Poster gold" (70х100 см).
Рамка настенная может располагаться как вертикально, так и горизонтально. Для фотографий размером: 70х100 см. Размер рамки: 71х101
485 руб
Раздел: Размер 50x60 и более
Пластины для стирки белого и цветного белья FeedBack, 30 штук.
Пластины для стирки белого и цветного белья это настоящая революция среди средств для стирки. Не содержит фосфатов! Пластины необходимо
640 руб
Раздел: Стиральные порошки

81. Фразеологизмы новозаветного происхождения в современном русском языке

82. Что стало бы с литературой, если бы не было музыки

83. Глагол в русском языке

84. «Человек на войне». По произведениям В.Быкова «Сотников» и Б.Васильева «В списках не значился»

85. Москва в русской литературе

86. Литература русского зарубежья первой половины XX века (По произведениям В. В. Набокова)
87. Типы словарей, используемые в русском языке
88. Сопоставительный анализ употребления перформативных глаголов в русском и английском языках

89. "Лишний человек" в произведениях русских писателей 19 века

90. Шпаргалка по русскому языку

91. Оппозиционно-публицистическая деятельность А.И. Герцена за рубежом на примере Вольной русской типографии и "Колокола"

92. Происхождение русских фамилий. Ономастика

93. Конспект критических материалов. Русская литература 2-й четверти XIX века

94. С русскими воинами через века и поля боевой славы

95. Судьбы женщин в русской литературе

96. Тема бала в русской классической литературе

Доска магнитно-маркерная "ECO", деревянная рамка, 60х80 см.
Поверхность доски предназначена для письма и рисования маркерами и закрепления информации магнитами. Универсальное интерьерное решение для
1519 руб
Раздел: Доски магнитно-маркерные
Логическая игра "IQ-Твист".
IQ-Твист - логическая игра, головоломка для взрослых и детей. Увлекательный способ проверить своё пространственное восприятие. Игра
547 руб
Раздел: Игры логические
Швабра плоская с декором "Premium" (микрофибра).
Швабра плоская с декором "Premium". Чистящая поверхность тряпки изготовлена из микрофибры. Данный материал обладает повышенной
640 руб
Раздел: Швабры и наборы

97. Проблемы национального характера в русской прозе 20 века

98. Русские заимствования в английском языке (Russian borrowings in English language)

99. Поиск романтического идеала в русской литературе XX века


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.