Я хотел бы добавить одну вещь к отличному ответу chazomaticus :
Не забудьте также тег META (например, или HTML4 или XHTML-версия этого файла ):
Это кажется тривиальным, но IE7 дал мне проблемы с этим раньше.
Я делал все правильно; база данных, соединение с базой данных и HTTP-заголовок Content-Type были настроены на UTF-8, и она отлично работала во всех других браузерах, но Internet Explorer по-прежнему настаивал на использовании «западноевропейской» кодировки.
It оказалось, что на странице отсутствует метка META. Добавление этого решения проблемы.
Правка:
У W3C фактически есть довольно большой раздел , посвященный I18N . У них есть ряд статей, связанных с этой проблемой & ndash; описывая HTTP, (X) HTML и CSS сторону вещей:
Они рекомендуют использовать как HTTP-заголовок, так и HTML метатег (или объявление XML в случае XHTML служил XML).
В данном случае это, вероятно, ошибка компилятора, потому что после этого ссылается на переменную (и перемещается из нее).
В общем случае вызов move throw
концептуально совпадает с перемещением return
. Хорошо вызывать движение автоматически, когда известно, что переменная не может быть указана после данной точки (throw
или return
).
Стандарт C ++ говорит (15.1.3):
Выбрасывание исключения copy-initializes (8.5, 12.8) - временный объект , называемый объектом исключения. Временной является значением lvalue и используется для инициализации переменной, указанной в соответствующем обработчике (15.3). Blockquote>Этот параграф может также иметь значение здесь (12.8.31):
Когда определенные критерии выполняются , реализации разрешено опускать конструкцию копирования / перемещения объекта класса, даже если конструктор, выбранный для операции копирования / перемещения и / или деструктор для объекта, имеет побочные эффекты . В таких случаях реализация рассматривает источник и цель пропущенной операции копирования / перемещения как просто два разных способа обращения к одному и тому же объекту, а уничтожение этого объекта происходит в более поздние времена, когда эти два объекта были бы разрушен без оптимизации. Это исключение операций копирования / перемещения, называемое копированием, разрешено в следующих случаях (которые могут быть объединены для устранения нескольких копий):
(...)
- в выражении throw , когда операнд - это имя энергонезависимого автоматического объекта (кроме параметра функции или параметра catch-clause) , объем которого не выходит за пределы самой внутренней прилагаемой попытки -block (если есть) , операция копирования / перемещения из операнда в объект исключения (15.1) может быть опущена путем создания автоматического объекта непосредственно в объект исключения blockquote>Проверено в Visual Studio 2012, эффект:
Exception! blabla
Похоже на ошибку в GCC.