انجمن پشتیبانی ویتایگر فارسی
تبدیل collation کلیه جداول به utf8 - نسخه‌ی قابل چاپ

+- انجمن پشتیبانی ویتایگر فارسی (https://forum.favtiger.ir)
+-- انجمن: ویتایگر فارسی x.6 (https://forum.favtiger.ir/forumdisplay.php?fid=1)
+--- انجمن: نصب و راه اندازی ویتایگر فارسی 6 (https://forum.favtiger.ir/forumdisplay.php?fid=2)
+--- موضوع: تبدیل collation کلیه جداول به utf8 (/showthread.php?tid=10)



تبدیل collation کلیه جداول به utf8 - administrator - 01-02-2017

سلام

اگر از همان ابتدا این تنظیمات سرور به صورت پیش فرض پیکربندی شده باشد اکثر جداول با collation به صورت latin1 ایجاد می شوند. که باید از روش زیر کلیه جداول را به utf8 تغییر بدید. در غیر این صورت رکوردها در ویتایگر به صورت ؟؟؟؟ ظاهر می شوند.

یک فایل php بر روی هاست خود ایجاد و مقدار زیر را درون آن ریخته و ذخیره و فراخوانی کنید.
کد php:
<?php
$dbname 
'dbname';
mysql_connect('127.0.0.1''username''password');
mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
$res mysql_query("SHOW TABLES FROM `$dbname`");
while(
$row mysql_fetch_row($res)) {
 
  $query "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
 
  mysql_query($query);
 
  $query "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
 
  mysql_query($query);
}
echo 
'all tables converted';
?>

نام دیتا بیس و یوزر و پسورد متصل به آن را وارد کنید.

 اگر هم بخواهید در تنظیمات mysql در سرور مقدار پیش فرض را روی utf8 ست کنید بدین صورت:
کد:
/etc/my.cnf to ~/my.cnf

(user directory). 
برای اکانت مربوطه

دو خط زیر را به آن در بخش [mysqld] اضافه کنید

collation_server = utf8_unicode_ci
character_set_server=utf8

و mysql را ریستارت کنید.

----------------
همچنین می تونید در phpmyadmin با دسترسی روت این تنظیمات را انجام بدید
در صفحه اصلی آن به تب Variables رفته و جستجوکنید character
و همه مقادیر را از latin1 به utf8 تغییر بدید.

برای فراخوانی کد یک فایل جدید توی مسیری که ویتایگر نصب شده ایجاد کنید مثلا db.php
کد را داخلش قرار داده و ذخیره کنید.
سپس اون را بدین صورت فراخوانی کنید
domain.com/vtiger/db.php


RE: تبدیل collation کلیه جداول به utf8 - homayunj36@gmail.com - 01-02-2017

(01-02-2017, 11:53 AM)administrator نوشته است: نباید مشکلی باشه
پرمیشن فایل را 777 کنید و از صحیح بودن اطلاعاتمطمئن بشید.

روش دیگه اینکه بعد از اینکه دیتا بیس را ساختید از طریق phpmyadmin کالیشن را دستی تغییر بدید و بعد ویتایگر فارسی را نصب کنید.
شاد باشید

با سلام
روش اخری که فرمودید جواب داد
ممنون از همکاریتون


RE: تبدیل collation کلیه جداول به utf8 - homayunj36@gmail.com - 02-02-2017

سلام روز عالی بخیر
با اینکه مشکل قبلی حل شد
ولی الان متوجه این شدم که مشکل جدیدی به وجود اومده که دیگه کاربر جدید نمیسازه
و اینکه تو نصب دوباره متوجه شدم مرحله تصبش به شکل عکسی ضمیمه نیمه کاره میمونه


RE: تبدیل collation کلیه جداول به utf8 - administrator - 02-02-2017

سلام و روز بخیر

روی آدرسی که دادین مشکلی نیست، اطلاعات ورود را پیعام خصوصی کنید تست بشه.
احتمال داره اگر مشکلی باشه از رعایت نکردن پیشنیازها سمت سرور باشه.

همچنین موارد مجزا را در تاپیک های مجزا ایجاد و مطرح کنید.

ممنون


RE: تبدیل collation کلیه جداول به utf8 - tehransabanet - 04-06-2018

(01-02-2017, 11:03 AM)administrator نوشته است: سلام

اگر از همان ابتدا این تنظیمات سرور به صورت پیش فرض پیکربندی شده باشد اکثر جداول با collation به صورت latin1 ایجاد می شوند. که باید از روش زیر کلیه جداول را به utf8 تغییر بدید. در غیر این صورت رکوردها در ویتایگر به صورت ؟؟؟؟ ظاهر می شوند.

یک فایل php بر روی هاست خود ایجاد و مقدار زیر را درون آن ریخته و ذخیره و فراخوانی کنید.
کد php:
<?php
$dbname 
'dbname';
mysql_connect('127.0.0.1''username''password');
mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
$res mysql_query("SHOW TABLES FROM `$dbname`");
while(
$row mysql_fetch_row($res)) {
 
  $query "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
 
  mysql_query($query);
 
  $query "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
 
  mysql_query($query);
}
echo 
'all tables converted';
?>

نام دیتا بیس و یوزر و پسورد متصل به آن را وارد کنید.

 اگر هم بخواهید در تنظیمات mysql در سرور مقدار پیش فرض را روی utf8 ست کنید بدین صورت:
کد:
/etc/my.cnf to ~/my.cnf

(user directory). 
برای اکانت مربوطه

دو خط زیر را به آن در بخش [mysqld] اضافه کنید

collation_server = utf8_unicode_ci
character_set_server=utf8

و mysql را ریستارت کنید.

----------------
همچنین می تونید در phpmyadmin با دسترسی روت این تنظیمات را انجام بدید
در صفحه اصلی آن به تب Variables رفته و جستجوکنید character
و همه مقادیر را از latin1 به utf8 تغییر بدید.

برای فراخوانی کد یک فایل جدید توی مسیری که ویتایگر نصب شده ایجاد کنید مثلا db.php
کد را داخلش قرار داده و ذخیره کنید.
سپس اون را بدین صورت فراخوانی کنید
domain.com/vtiger/db.php

سلام
وقت بخیر
ادمین جان بنده این کار رو کردم ولی اسم محصول را وارد میکنم همچنان با علامت سوال نمایش داده می شود
ویتایگر 7.1 هم هست
ممنون


RE: تبدیل collation کلیه جداول به utf8 - tehransabanet - 04-06-2018

سلام مجدد
مشکلم رفع شد
بگم شاید به درد کسی خورد

این کد تمام جداول رو به utf8 تبدیل میکنه

<?php
// your connection
mysql_connect("localhost","root","***");
mysql_select_db("DatabaseName");

// convert code
$res = mysql_query("SHOW TABLES");
while ($row = mysql_fetch_array($res))
{
foreach ($row as $key => $table)
{
mysql_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
echo $key . " =&gt; " . $table . " CONVERTED<br />";
}
}
?>


همونطور که مهندس فرمود یه فایل php درست میکنیم در مسیر ویتایگر و اونو فراخوانی میکنیم و mysql_connect("localhost","root","***"); و به جای روت یوزر و * پسورد وارد میکنیم و تمام