سلام این مطلب بارها و بار ها مطرح شده من یه نمونه در این مورد مطلب نوشتم ولی کامل نیست و خواستم امروز کاملترش کنم.
مشکل علامت سوال در قسمت چاپ:
$servername="localhost";
$dbname="cms2";
$user="root";
$pass="";
$dblink=mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$dblink);
mysql_query("SET CHARACTER SET utf8",$dblink);
$dbresult=mysql_query("SELECT * FROM jadval limit 5",$dblink);
باید همیشه این خط آبی قبل از ارسال کوئری باشه اگه بعد از قسمت کوئری
mysql_query
نوشته بشه علامت سوال در صفحه چاپ میشه.
مشکل نوشته های بهم ریخته:
اگر این خط رو قبل از ارسال کوئری و insert در قسمت ارسال اطلاعات به mysql قرار ندیم نوشته ها در خروجی به صورت بهم ریخته نشون داده میشه.
$handle=mysql_connect('localhost','root','');
mysql_query("SET CHARACTER SET utf8",$handle);
$query = "INSERT INTO jadval SET msg = '$msg',title='$title',date='$date'";
$result=mysql_query($query,$handle);
روش دیگه:
$Link= mysql_connect($Host,$User,$Password);
//وارد کردن مقادیر به جدول
$Query="INSERT into $Tablname values ('$_POST[sname]','$_POST[sfamily]')";
mysql_query('SET NAMES \'utf8\'');
if (mysql_db_query($Dbname,$Query,$Link)) {
حتما در صفحه ی خود در قسمت <head></head> از کد زیر استفاده کنید:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
در mysql هم Collation دیتابیس ، جدول و فیلدهایی که قراره متن فارسی در آن ها قرار بگیره رو utf8_persian_ci انتخاب کنید.
سلام
من ی وبلاگ درست کردم خیلیم بهش میرسم ولی تو مرورگرها بالا نمیاد
شما ی سورس ندارید بهش بدم اول بالا بیاد
توی چه مرورگری بالا نمیاد؟
باید سورسش رو ببینم.
سلام. تشکر یه مشکلم حل کردین با این مطلب...
خیلی خیلی خیلی ممنون
من هر دو مشکل رو داشتم که با این کد حل شد
ممنون و ممنون
کد من اینه:
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$servername = "localhost"; $username = "root"; $password = ""; $dbname = "behzisti"; $codemeli = $_POST['codemeli'];
$conn = new mysqli($servername, $username, $password, $dbname) or die("Connection failed: " . $conn->connect_error);
$sql = "SELECT * FROM maloolin where codemeli='".$codemeli."' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$name = $row['name'];
$family = $row['family'];
}
} else { echo "یافت نشد"; } $conn->close(); } ?>
چجوری باید فارسی بشه
همشو امتحان کردم، علامت سوال میشه !
ممنون راهنمایی کنید
یه سرچی تو اینترنت بکنی پیدا میکنی:
https://www.sitepoint.com/community/t/mysql-encoding-problem-cant-change-to-utf-8/38925/3
مگر اینکه وقتی دیتابیس و جدول را میساختی utf8_persian_ci را در قسمت Collation انتخاب نکردی. پس باید این تغییرات را اعمال کنی بعد از اول دوباره اطلاعات را وارد کنی.
اقا از من اصلا فارسی نمیشه وقتی خروجی میگیرم علامت سواله
توی phpmyadmin هم فارسی بنویسک علامت سواله
وقتی توی phpmyadmin هم فارسی وارد میکنی علامت سوال هست این یعنی شما Collation دیتابیس و جدول را utf8_persian_ci انتخاب نکردی.