Отправить персидскую строку в mysql

Я пытаюсь отправить строку Персидский в базу данных mysql; но он сохраняет данные как что-то вроде этого "%D8%AC%D8%AF%DB%8C%D8%AF". У английских струн нет проблем.

var new = $(this).val();
 $.ajax({
    url: '/url/' + new,
    type: 'GET',
    success: function () {
      window.location.href = window.location.href;
    }
  });

А вот мой код php.

 public function url($new){
$db = Db::getInstance();
  $db->insert("INSERT INTO table (column) VALUES ('$new')");}

Как я могу решить эту проблему?

Что-то не так с моими символами URL. Я обнаружил, что если я воспользуюсь почтовым методом, проблема разрешится. Я использую структуру MVC и хочу, чтобы в моем URL-адресе были персидские строки. так как я могу решить эту новую проблему ??? ...

Какой набор символов определен для вашей базы данных?

Madhur Bhaiya 15.09.2018 13:00

@MadhurBhaiya его "utf8_general_ci" для таблицы, а этот столбец - "VARCHAR"

Bahram 15.09.2018 13:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
2
1 051
4

Ответы 4

Измените свою таблицу

ALTER TABLE 'your table name' MODIFY 'column name' VARCHAR(20) CHARACTER SET UTF8;

Для отображения персидского языка на ваших веб-страницах вам необходимо использовать код

<meta charset = "UTF-8">

Для URL:

$ строка = '% E0% A4% 89-% E0% A4% 85% E0% A4% B9% E0% A4% BF% E0% A4% B2% E0% A5% 87-% E0% A4% 95% E0 % A4% B9% E0% A4% BE% E0% A4% 81-% E0% A4% 9B-% E0% A4% A4 ';

echo rawurldecode ($ строка);

Вы можете использовать rawurldecode(string) для декодирования строки

Piyush Kumar Sahay 15.09.2018 13:21

Перед вставкой символа Unicode, такого как персидский или арабский, в базу данных, вам необходимо установить набор символов Utf-8 при подключении к базе данных.

public function url($new){
$db = Db::getInstance();
$db->exec('SET NAMES utf8');
  $db->insert("INSERT INTO table (column) VALUES ('$new')");}

также для предотвращения каких-либо проблем вы должны установить для сортировки базы данных значение utf8 general ci при создании баз данных, в которых хранятся персидские символы или другие символы Unicode.

Проблема может быть вызвана тремя слоями. Во-первых, ваша база данных будет иметь кодировку символов по умолчанию. Во-вторых, ваша таблица может иметь явную кодировку символов, которая имеет приоритет. Поэтому вам нужно убедиться, что для вашей таблицы установлена ​​кодировка Unicode с помощью одного из этих методов. Вы говорите, что ваша таблица настроена на utf8_general_ci, поэтому с этой частью все должно быть в порядке. В-третьих, само соединение имеет определенную кодировку. Это можно настроить в клиентских настройках MySQL по умолчанию с помощью следующих параметров: [mysqld] init_connect = 'УСТАНОВИТЬ ИМЕНА utf8'

Вы также можете установить это в коде. Например, для PHP вы можете сделать следующее: mysql_set_charset ("UTF8", $ conn); или $ db-> exec ('УСТАНОВИТЬ НАБОР СИМВОЛОВ UTF8')

Вы ничего не сказали о том, что такое $ db, поэтому не можете быть уверены. Но как-то так.

Наконец, убедитесь, что он на самом деле не работает, но вы просто этого не знаете. Ваша веб-страница должна быть настроена на utf8. Проверьте, что вы на самом деле получаете с веб-страницы, а не просто предполагайте, что он отправляет Unicode.

Запустите этот запрос, чтобы изменить набор символов и сопоставить таблицу для поддержки символов Юникода.

ALTER TABLE <TABLE_NAME> CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Другие вопросы по теме