مشکل لاگین کاربران با حروف فارسی
با سلام و خسته نباشید
دوستان قبل که شروع کنم بگم تمام مطالب سایت و گوگلو مرور کردم جواب نگرفتم امیدم به شماس!
نرم افزار : اتوماسیون آندرویدی
دیتابیس : sql server 2008 آنلاین
کد وب سرویس :
<?php
if(isset($_REQUEST['action'])){
$action = $_REQUEST['action'];
}else{
echo "Invalid Data";
exit;
}
if($action =="submit_login"){
submit_login();
} else if($action =="read_Call_in"){
read_Call_in();
}
function connectToDatabase(){
$serverName = "78.46.82.170,2008"; //serverName\instanceName
$connectionInfo=array("Database"=>"pardisan_android","UID"=>"pardisan_sup","PWD"=>"8612431059","CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
// echo "Connected to SQL Server.
";
}else{
//echo "Connection could not be established.
";
}
return $conn;
}
کد تابع مورد بحث:
function submit_login(){
$connection = connectToDatabase();
$username=$_REQUEST['username'];
$password=$_REQUEST['password'];
$result=sqlsrv_query($connection,"select * from login where name='$username' and pass='$password'");
$output=array();
while ($row=sqlsrv_fetch_array($result)){
$record['username']=$row['name'];
$record['password']=$row['pass'];
$output[]=$record;
}
echo json_encode($output);
sqlsrv_close($connection);
}
تابع بالا برای یوزرهای با نام انگلیسی درست کار میکنه و مقدار برمیگردونه ولی تو فارسیا نال برمیگردونه.درضمن اینم بگم تو خوندن اطلاعات فارسی هم مشکلی ندارم و اطلاعات بدرستی تو گوشیم نمایش داده میشن.
کمک کنید...
ممنون
زمانی که کد اطلاعات فرم رو از اندروید میفرستید به وب سرویس از این کد استفاده کنید و اطلاعات رو انکود کنید :
try {
URLEncoder.encode(username, "UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
موقعی که میخواید در سرور بخونید هم مقدار رو decode کنید .
یه سری حروف هستن در فارسی وجود دارن ولی در عربی نیستن که بهشون میگیم گچ پژ یه سری حروف هم هستن مثل ی و ک که هم در فارسی هستن و هم در عربی ولی نحوه نوشتنشون فرق میکنه درواقع شما در دیتابیس ی فارسی دارید ولی در هنگام ارسال از اپ ی عربی ارسال میشه برای رفع این مشکل باید کارکتر ی عربی رو با ی فارسی در موقع ارسال عوض کنید یا در سرور این کارو بکنید که بهتره
ی عربی 2 تا نقطه زیرش داره اگر دقت کرده باشید .
:)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .