Как сохранить Европейский Символ в mysql базе данных?

Просто найденный Легкий Бот . Программируйте свой робот, чтобы переместить и выполнить задачи завершить загадку. Даже включает подпрограммы. Программируйте бота путем перетаскивания мозаик в слоты. Игра очень полируется.

Обновление Lightbot является теперь новой версией игры и имеет версии, специально предназначенные для возрастов детей 4-8 или возрастов 9 + (без верхнего предела) и также вид функций если

экран lightbot 1 http://www.lostateminor.com/wp-content/uploads/2008/10/light-bot.jpg

8
задан Rachel 9 November 2009 в 20:39
поделиться

4 ответа

Я не знаю, чего вы действительно хотите, но нет проблем с сохранением его в VARCHAR с кодировкой utf-8

UTF-8                  0xE282AC
UCS-16                 0x20AC
ISO-8859-15 (latin-9)  0xA4
11
ответ дан 5 December 2019 в 09:26
поделиться

Хотя я также рекомендую UTF-8, я хотел добавить некоторые пояснения, почему у вас могут возникнуть проблемы с сохранением символа евро в других кодировках.

Символ евро был добавлен как патч в существующие устаревшие кодировки Windows и Mac около 1997 года. В Windows-1252, набор символов Windows latin-1, выбранная кодовая точка была 0x80, а MacRoman выбрал другое расположение. Это все нормально, но многие приложения указывают кодировку iso-8859-1 в своей схеме базы данных MySql для текста Latin 1-General или отмечают свой HTML-вывод в веб-приложениях с помощью iso-8859-1. Насколько мне известно, стандарт ISO-8859-1 никогда официально не обновлялся для сопоставления кода символа евро. Кодировка latin1, которая поддерживает евро, - это редко используемая кодировка iso-8859-15.

Итак, если вы используете кодировку iso-8859-1 в своей схеме, у вас будет undefined,

2
ответ дан 5 December 2019 в 09:26
поделиться

.1. В Perl конструктор - это просто подпрограмма с именем new.

Да, по соглашению new является конструктором. Он также может выполнять инициализацию или нет. new должен возвращать объект в случае успеха или выдавать исключение ( die / croak ), если произошла ошибка, препятствующая созданию объекта.

Вы можете назвать ваш конструктор может иметь любое количество конструкторов и даже создавать объекты благословения в любом пространстве имен, которое вы пожелаете (не то чтобы это хорошая идея).

.2. Я вообще не понимаю, что делает my $ type = shift; , но я всегда это вижу. Мне он нужен?

shift без аргументов берет аргумент из заголовка @_ и присваивает его $ type . -> Оператор передает инициатор (левая часть) в качестве первого аргумента подпрограммы. Итак, эта строка получает имя класса из списка аргументов. И да, вам это нужно.

.3. Как массив входных данных становится хешем % params ? my% params = @_;

Назначение хешу выполняется в контексте списка, при этом пары элементов списка сгруппированы в пары ключ / значение. Итак, % foo = 1, 2, 3, 4; создает такой хеш, что $ foo {1} == 2 и $ foo {3} == 4 . Обычно это делается для создания именованных параметров для подпрограммы. Если подпрограмме передано нечетное количество аргументов, будет сгенерировано предупреждение, если предупреждения включены.

.4. Что означает 'my $ self = {}; `do?

Эта строка создает анонимную ссылку на хэш и присваивает ее переменной с лексической областью видимости $ self . Ссылка на хэш будет хранить данные для объекта. Обычно ключи в хэше имеют однозначное соответствие атрибутам объекта. Итак, если у класса Foo есть атрибуты 'size' и 'color', если вы проверите содержимое объекта Foo, вы увидите что-то вроде $ foo = {size => 'm', color => 'black'} ; .

.5. Учитывая $ self -> {'High'} = $ params {'High'}; откуда берется $ params {'High'} ?

Этот код основан на аргументы переданы в новый . Если новый назывался как Foo-> new (High => 46) , тогда хеш, созданный в соответствии с вопросом 3, будет иметь значение для ключа High (46). В этом случае это эквивалентно $ self -> {High} = 46 . Но если метод вызывается как Foo-> new () , то значение не будет доступно, и у нас будет $ self -> {High} = undef .

.6 . Что делает bless ?

bless берет ссылку и связывает ее с конкретным пакетом, чтобы вы могли использовать ее для вызовов методов. С одним аргументом ссылка ассоциируется с текущим пакетом. С двумя аргументами второй аргумент указывает пакет, с которым нужно связать ссылку. Лучше всегда использовать форму с двумя аргументами, чтобы ваши конструкторы могли быть унаследованы подклассом и по-прежнему функционировали должным образом.

Наконец, я '

1
ответ дан 5 December 2019 в 09:26
поделиться

Если таблица или столбец настроены на использование кодировки utf8, что-то вроде этого работает нормально:

insert into test values (1, '€ <- euro');

Кроме того, добавьте это в строку подключения в клиенте чтобы убедиться, что соединение использует UTF8:

CharSet=UTF8;

Таблица, которую я использовал для тестирования, следующая:

CREATE TABLE  `g`.`test` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(10) character set utf8 NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
4
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: