导入mySql数据库后,我在数据库文本中有奇怪的字符:Ã,Ã,¢,â€

时间:2016-04-12 10:16:22

标签: php mysql database

我有多语言网站的导出数据库并重新导入它,我有阿拉伯语和日语的奇怪字符,我已经尝试了很多解决方案来解决它,但没有一个好的结果。 现在,当我添加阿拉伯语或日语的新帖子时它工作正常,但我看到旧帖子中出现奇怪的角色。

我的数据库:

-- phpMyAdmin SQL Dump
-- version 4.0.10.7
-- http://www.phpmyadmin.net
--
-- Client: localhost:3306
-- Généré le: Mar 05 Avril 2016 à 19:18
-- Version du serveur: 5.5.48-cll
-- Version de PHP: 5.4.31

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
DROP TABLE IF EXISTS `pm_videos`;
CREATE TABLE `pm_videos` (
  `id` mediumint(6) unsigned NOT NULL AUTO_INCREMENT,
  `uniq_id` varchar(10) NOT NULL DEFAULT '',
  `video_title` varchar(100) NOT NULL DEFAULT '',
  `description` text NOT NULL,
  `yt_id` varchar(50) NOT NULL DEFAULT '',
  `yt_length` mediumint(5) unsigned NOT NULL DEFAULT '0',
  `yt_thumb` varchar(255) NOT NULL DEFAULT '',
  `yt_views` int(10) NOT NULL DEFAULT '0',
  `category` varchar(30) NOT NULL DEFAULT '',
  `submitted_user_id` int(10) unsigned NOT NULL DEFAULT '0',
  `submitted` varchar(100) NOT NULL DEFAULT '',
  `lastwatched` int(10) unsigned NOT NULL DEFAULT '0',
  `added` int(10) unsigned NOT NULL DEFAULT '0',
  `site_views` int(9) NOT NULL DEFAULT '0',
  `url_flv` varchar(255) NOT NULL DEFAULT '',
  `source_id` smallint(2) unsigned NOT NULL DEFAULT '0',
  `language` smallint(2) unsigned NOT NULL DEFAULT '0',
  `age_verification` enum('0','1') NOT NULL DEFAULT '0',
  `last_check` int(10) unsigned NOT NULL DEFAULT '0',
  `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `featured` enum('0','1') NOT NULL DEFAULT '0',
  `restricted` enum('0','1') NOT NULL DEFAULT '0',
  `allow_comments` enum('0','1') NOT NULL DEFAULT '1',
  `allow_embedding` enum('0','1') NOT NULL DEFAULT '1',
  `video_slug` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `uniq_id` (`uniq_id`),
  KEY `added` (`added`),
  KEY `yt_id` (`yt_id`),
  KEY `featured` (`featured`),
  KEY `submitted_user_id` (`submitted_user_id`),
  FULLTEXT KEY `fulltext_index` (`video_title`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

--
-- Contenu de la table `pm_videos`
--

INSERT INTO `pm_videos` (`id`, `uniq_id`, `video_title`, `description`, `yt_id`, `yt_length`, `yt_thumb`, `yt_views`, `category`, `submitted`, `lastwatched`, `added`, `site_views`, `url_flv`, `source_id`, `language`, `age_verification`, `last_check`, `status`, `featured`, `restricted`, `allow_comments`, `video_slug`, `allow_embedding`) VALUES
(7999, 'bd21476c6', 'بكاء ابن كيران بجنازة عبد الله بها', '', '', 0, 'bd21476c6-1.jpg', 0, '8', 'mohamed', 1456351954, 1455803880, 96, '1360bf2b.mp4', 1, 1, '0', 0, 0, '0', '0', '1', '%d8%a8%d9%83%d8%a7%d8%a1-%d8%a7%d8%a8%d9%86-%d9%83%d9%8a%d8%b1%d8%a7%d9%86-%d8%a8%d8%ac%d9%86%d8%a7%d8%b2%d8%a9-%d8%b9%d8%a8%d8%af-%d8%a7%d9%84%d9%84%d9%87-%d8%a8%d9%87%d8%a7', '1'),
(8000, 'a1f3adea0', 'Real Madrid 4 - 0 PFC Ludogorets Razgrad All Goals and Full Highlights', '', '', 0, 'a1f3adea0-1.jpg', 0, '11', 'mohamed', 1457028724, 1455803880, 94, 'dcccc4c0.mp4', 1, 1, '0', 0, 0, '0', '0', '1', 'real-madrid-4-0-pfc-ludogorets-razgrad-all-goals-and-full-highlights', '1'),

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

1 个答案:

答案 0 :(得分:2)

您可能更改了字符编码。有许多类型的编码,如UTF-8或Latin-1,它们定义了如何以位(0101001 ...)转换字符。

如果数据的编码方式与mysql认为的相同,则mysql不会理解它,并会显示奇怪的字符。

使用CLI在数据库中转换数据编码的方法有些。 首先,您需要找出数据库所需的编码,您可以找到列表here。 然后,您需要更改数据编码:有一个很好的解释教程here