Это довольно популярный вопрос, поэтому я опубликую свое решение. У меня была та же проблема, и хотя она не идеальна, я думаю, что она работает очень хорошо и не делает частичную зависимость от представления. Мой сценарий состоял в том, что действие было доступно самому, но также могло быть встроено в aa view - google map.
В моем _layout
у меня есть:
@RenderSection("body_scripts", false)
В моем index
view У меня есть:
@Html.Partial("Clients")
@section body_scripts
{
@Html.Partial("Clients_Scripts")
}
В моем представлении clients
у меня есть (все карта и ассоциативный html):
@section body_scripts
{
@Html.Partial("Clients_Scripts")
}
Мой Clients_Scripts
вид содержит javascript, который будет отображаться на странице
Таким образом, мой сценарий изолирован и может быть отображен на странице, где это необходимо, причем тэг body_scripts
отображается только в первом вхождении, что механизм просмотра бритвы находит это.
Это позволяет мне все разделять - это решение, которое хорошо работает для меня, у других могут быть проблемы с ним, но он исправляет дыры «по дизайну».
1) База данных: изменить настройку базы данных по умолчанию как utf8mb4
.
2) Таблица: Изменить сортировку таблицы как CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
.
Запрос:
ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
3) Код:
INSERT INTO tablename (column1, column2, column3, column4, column5, column6, column7)
VALUES ('273', '3', 'Hdhdhdh
Я обновил мою базу данных и таблицу до версии с utf8 до utf8mb4. Но для меня ничего не работает. Затем я попытался обновить тип данных столбца до blob, к счастью, он работал для меня, и данные были сохранены. Даже моя база данных и таблица - это CHARACTER SET utf8 COLLATE utf8_unicode
Команда для изменения столбца:
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME TYPE;
И нам нужно использовать type = BLOB
. Пример для изменения: -
ALTER TABLE messages MODIFY content BLOB;
Я проверил, что последние mySQL и другие базы данных не нужны ''
для использования в команде на имя_таблицы, имя_каталога и т. д.
Извлечение и сохранение данных: Непосредственно сохранить содержимое чата в столбце и для извлечения данных извлекать данные в виде байтового массива (byte[])
из столбца db, а затем преобразовать его в string
, например (Код Java)
new String((byte[]) arr)
Если вы используете Solr + Mysql + Java, вы можете использовать:
Это можно использовать:
В приведенном выше случае это одно из решений для хранения ваших смайликов в вашей системе .
Шаги по его использованию:
Используемая библиотека: import java.net.URLDecoder; import java.net.URLEncoder;
Пример кода:
import java.net.URLDecoder;
import java.net.URLEncoder;
public static void main(String[] args) {
//SpringApplication.run(ParticipantApplication.class, args);
System.out.println(encodeStringUrl("
%
, ваше декодирование сломается.
– Jonathan Laliberte
9 June 2018 в 12:51
Мой ответ добавляет только ответ Selvamani P.
Вам также может потребоваться изменить любые SET NAMES utf8
запросы с помощью SET NAMES utf8mb4
. Это сделал трюк для меня.
Кроме того, это отличная статья для переноса вашего сайта с utf8 на utf8mb4. В частности, статья делает 2 хороших момента на индексах и восстанавливает таблицы после их преобразования в utf8mb4:
INDEXES
При преобразовании с utf8 в utf8mb4 максимальная длина столбца или индексный ключ не изменяется в байтах. Поэтому он меньше по характеру, потому что максимальная длина символа теперь составляет четыре байта вместо трех. [...] У механизма хранения InnoDB максимальная длина индекса составляет 767 байт, поэтому для столбцов utf8 или utf8mb4 вы можете индексировать максимум 255 или 191 символ соответственно. Если у вас в настоящее время есть столбцы utf8 с индексами длиной более 191 символа, вам нужно будет индексировать меньшее количество символов при использовании utf8mb4.
РЕМОНТНЫЕ ТАБЛИЦЫ
После обновления сервера MySQL и внесения необходимых изменений, описанных выше, обязательно отредактируйте и оптимизируйте все базы данных и таблицы. Я не делал этого сразу после обновления (я не думал, что это было необходимо, поскольку все, казалось, отлично работало с первого взгляда), и столкнулись с некоторыми странными ошибками, в которых заявления UPDATE не имели никакого эффекта, хотя нет Ошибки были брошены.
Подробнее о запросах для восстановления таблиц в статье.
REPAIR TABLE
и OPTIMIZE TABLE
должны быть излишними - эффект ALTER
влияет на их выполнение.
– Rick James
26 February 2018 в 05:06
шаг 1, измените кодировку по умолчанию вашей базы данных:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
, шаг 2, установите кодировку при создании таблицы:
CREATE TABLE IF NOT EXISTS table_name (
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
или alter table
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name modify name text charset utf8mb4;