PDA

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



ashid098
شنبه 16 خرداد 1394, 18:53 عصر
سلام دوستان من با عبارت های فارسی و .. مشکل دارم
مثلا
$s="سلام"
$s[1]
علامت سوال میده خلاسه ساب نمی شه
تو متن های کره ای و ژاپنی هم مشکل دارم مثلا سه حرف "ابا" یک حرف میشه
باید چکار رد

abolfazl-z
شنبه 16 خرداد 1394, 19:32 عصر
سلام


var_dump(preg_match('/^[\x{0600}-\x{06FF}\s]+$/u','این یک تست است'));
var_dump(preg_match('/^[\x{0600}-\x{06FF}\s]+$/u','این یک تست است salam'));


http://jrgraphix.net/r/Unicode/0600-06FF

H:Shojaei
شنبه 16 خرداد 1394, 21:45 عصر
اگر روی صفحه هنگام نمایش کاراکتر ها میگید که باید متاتگ های unicode رو اضافه کنید به کدهای html قسمت head و اگر در دیتابیس هم مشکل دارید باید charset دیتابیس رو هم utf-8 کنید و همچنین جداول رو با collation utf-8 هم ذخیره کنید...

ashid098
یک شنبه 17 خرداد 1394, 17:57 عصر
$str = "سلام";
$a = substr($str, 0, 1)
می خوام حروف رو از هم جدا کنم
تو زبان فارسی وقتی این کارو می کنم خروجی علامت سوال میده

abolfazl-z
یک شنبه 17 خرداد 1394, 21:50 عصر
$str = "سلام";
$a = substr($str, 0, 1)
می خوام حروف رو از هم جدا کنم
تو زبان فارسی وقتی این کارو می کنم خروجی علامت سوال میده

باید از کتابخانه multibyte ها استفاده کنید !

http://php.net/manual/en/book.mbstring.php

مطالبی که H:Shojaei گفتند را هم مد نظر بگیرید و همچنین یادتون نرود که نوع ذخیره سازی فایل PHP را از نوع قرار encode as utf-8 without bom قرار دهید که البته تو editor و ide های مختلف روش ذخیره سازی متفاوت است.

ashid098
شنبه 30 خرداد 1394, 17:00 عصر
تابع preader (lin 97 lib/functions.php رو ی نگاخ بندازید میبینید که از multibyte نمیشه استفاده کرد
راه دیگه ای نداره؟

fatima-php
یک شنبه 31 خرداد 1394, 09:03 صبح
تابع preader چیه؟

abolfazl-z
یک شنبه 31 خرداد 1394, 11:46 صبح
این را نگاه کنید :


<html>
<head>
<meta charset="utf-8">
</head>
<body><?=mb_substr('سلام', 0, 1);?></body>
</html>

m.esmaeilzadeh
یک شنبه 31 خرداد 1394, 12:29 عصر
از همین تابع mb_substr استفاده کنید یا در مورد php utf-8 sub string در گوگل جستجو کن !