PDA

View Full Version : سوال: مشکل بهم ریختگی متن بعد از تبدیل access به mysql



ravand
دوشنبه 05 مرداد 1394, 11:46 صبح
سلام
من یه فایل access دارم که با یه نرم افزاری به mysql تبدیلش کردم ولی متاسفانه نوشته های فارسیش بعد از تبدیل به این شکل در میاد:
TÇÒãÇä ÇÈ
البته خود فایل access را هم که باز میکنم متنش به همین شکل هست: TÇÒãÇä ÇÈ
یکی از دوستان یه فایل php رو بهم داد ولی اونم نتونست مشکل رو حل کنه.
شما راهی رو سراغ ندارید که بهش این مشکل رو حل کرد؟
متشکرم.

phpdev
دوشنبه 05 مرداد 1394, 12:07 عصر
ببین این مشکها معمولا از اینکودینگ هستش . بگرد توی اون نرم افزار ببین چیزی در این مورد داره یا نه ؟

ravand
دوشنبه 05 مرداد 1394, 12:11 عصر
ببین این مشکها معمولا از اینکودینگ هستش . بگرد توی اون نرم افزار ببین چیزی در این مورد داره یا نه ؟
یکی از این نرم افزار ها utf-8 داشت انتخاب کردم ولی مشکل حل نشد. فکر میکنم برای اینه که این فایل access خودش کلا فایل رو بهم ریخته ذخیره میکرده.

phpdev
دوشنبه 05 مرداد 1394, 13:05 عصر
یعنی چی بهم ریخته ذخیره میکرده ؟!!!

ببین چجوری عمل کردی ؟ آیا اول یه خروجی گرفتی (export) بعد این کارو انجام دادی ؟! یه بررسی دیگه بکن ببین چی میشه.:متفکر:

ravand
دوشنبه 05 مرداد 1394, 14:15 عصر
یعنی چی بهم ریخته ذخیره میکرده ؟!!!

ببین چجوری عمل کردی ؟ آیا اول یه خروجی گرفتی (export) بعد این کارو انجام دادی ؟! یه بررسی دیگه بکن ببین چی میشه.:متفکر:
من که مثال زدم که. گفتم خروجیش به چه شکل میشه:

TÇÒãÇä ÇÈ
اینم خروجیش.
من تا تونستم توی این دو روز بررسی کردم. ولی فایده ای نداشت.

phpdev
دوشنبه 05 مرداد 1394, 14:20 عصر
نه بابا خروجی فایل export شده رو میگم . ببین چنتا فایل بوده؟ یا نه یه فایل با این حالت بوده dbName.sql

ravand
دوشنبه 05 مرداد 1394, 14:23 عصر
نه بابا خروجی فایل export شده رو میگم . ببین چنتا فایل بوده؟ یا نه یه فایل با این حالت بوده dbName.sql
وقتی با نرم افزار Access to Mysql converter به Mysql تبدیل میکنم اطلاعات خودش وارد میشه و من وقتی به بخش PhpMyAdmin میرم همونجا اطلاعات رو میبینم.
اینم نرم افزارش:
http://accesstomysql.converterfreeware.com/

phpdev
دوشنبه 05 مرداد 1394, 14:27 عصر
توی
PhpMyAdmin درسته ؟ ولی وقتی میخواهی نمایش توی سایت بدی اینجوری میشه ؟!!

ravand
دوشنبه 05 مرداد 1394, 14:27 عصر
مشکل از خود فایل access هست . از روز اول که از مشتری تحویل گرفتم با utf-8 سازگار نبوده. وقتی ام فایلش رو باز میکنم میبینم نوشته هاش به همین شکل بهم ریخته است. باید این نوشته های عجیب و غریب رو به متن فارسی ترجمه کنم. یه برنامه یکی بهم داد امتحان کردم ولی جواب نداد و به جای ترجمه کلا این متون رو پاک کرد.

ravand
دوشنبه 05 مرداد 1394, 14:30 عصر
توی
PhpMyAdmin درسته ؟ ولی وقتی میخواهی نمایش توی سایت بدی اینجوری میشه ؟!!

اینم عکسش داخل
PhpMyAdmin :
133601

phpdev
دوشنبه 05 مرداد 1394, 14:34 عصر
ایراد از خود فایلت هست ولی ممکنه بتونی نمایش بدی قبل از همه کئری هات اینو بزن



mysql_query("set names 'utf8'");


اگر pdo میزنی اینو



$dsn = "mysql:charset=utf8;host=" . DB_HOST . ";dbname=" . DB_NAME;

بذارش توی

$db = new PDO($dsn, DB_USER, DB_PASS, $option);

ravand
دوشنبه 05 مرداد 1394, 14:36 عصر
ایراد از خود فایلت هست ولی ممکنه بتونی نمایش بدی قبل از همه کئری هات اینو بزن



mysql_query("set names 'utf8'");


اگر pdo میزنی اینو



$dsn = "mysql:charset=utf8;host=" . DB_HOST . ";dbname=" . DB_NAME;

بذارش توی

$db = new PDO($dsn, DB_USER, DB_PASS, $option);
عزیزم شما منو خیلی مبتدی فرض کردی!
شما اصلا متوجه منظور من شدی؟

ravand
دوشنبه 05 مرداد 1394, 14:38 عصر
این نوشته های من از اساس اینطوری غریب و عجیب بوده دیگه این کدهای شما اثری نداره. باید این نوشت های من به utf-8 تبدیل بشه. راهی هم جز این نداره.

phpdev
دوشنبه 05 مرداد 1394, 14:40 عصر
بله متوجه شدم خودم هم قبلا به یه مشکلی نزدیک به مشکل شما دچار شده بودم یه راه پیشنهاد دادم گفتم شاید کارت حل شه . نخیر شما رو هم مبتدی فرض نکردم خودم اون ستاره ها رو دیدم. اگر هم دوست نداری میتونی این راه ها رو امتحان نکنی:چشمک:

Unique
دوشنبه 05 مرداد 1394, 14:53 عصر
آقا برای من موضوع جالبه ، میتونی database را پیام خصوصی کنی ؟

ravand
دوشنبه 05 مرداد 1394, 15:07 عصر
CREATE TABLE IF NOT EXISTS `jadval` (
`customerid` bigint(20) NOT NULL,
`firstname` varchar(30) COLLATE utf8_persian_ci DEFAULT NULL,
`lastname` varchar(30) COLLATE utf8_persian_ci DEFAULT NULL,
`fathername` varchar(30) COLLATE utf8_persian_ci DEFAULT NULL,
`tel` varchar(20) COLLATE utf8_persian_ci DEFAULT NULL,
`address` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`insertdate` date DEFAULT NULL,
`active` tinyint(4) NOT NULL,
`disc` varchar(250) COLLATE utf8_persian_ci DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4033 DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;

--
-- Dumping data for table `jadval`
--

INSERT INTO `jadval` (`customerid`, `firstname`, `lastname`, `fathername`, `tel`, `address`, `insertdate`, `active`, `disc`) VALUES
(1, 'ÍÇÌí ãÌÊÈí', 'ÕãÏíÇä', 'ÇÞÇ ãÕØÝí', '091336288888', 'Èíϐá ã ÇãÇã ', '2004-12-27', -1, '2728258'),
(2, 'ÚáíãÍãÏ', 'ãÏÇÍí', 'ÇÞÇ ÑÖÇ', '09133610000', 'ÞÇÓã ÇÈÇÏ', '2004-12-27', -1, '25884553'),
(3, 'ãåÏí', 'ÓãíÚí äíÇ', 'ÑÍãÊ Çáå -', '091328888', 'ÇÑÇä ', '2004-12-27', -1, '56285'),
(4, 'ÚÈÇÓ', 'ÞÏíÑíÇä', 'ÍÇÌí ÍÓíä', '0913299999', '˜ÇÔÇä', '2004-12-27', -1, '-'),

ravand
دوشنبه 05 مرداد 1394, 19:30 عصر
خیلی ممنون مشکلم حل شد یکی از دوستان جوابمو داد

ravand
دوشنبه 05 مرداد 1394, 22:06 عصر
الان تا اینجا پیش رفتم:

<?php
$content = file_get_contents('tblcustomer.sql');
$content = utf8_decode($content);
$content = iconv('windows-1256', 'utf-8', $content);
$content = str_replace('ك', 'ک', $content);
$content = str_replace('ي', 'ی', $content);
echo '<pre>' . $content . '</pre>';
?>

فقط مشکلم اینه که با برخی حروف ک و ی مشکل داره و با ژ