آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل لاگین کاربران با حروف فارسی

saeed_435  11 سال پیش  11 سال پیش
0 0

با سلام و خسته نباشید
دوستان قبل که شروع کنم بگم تمام مطالب سایت و گوگلو مرور کردم جواب نگرفتم امیدم به شماس!
نرم افزار : اتوماسیون آندرویدی
دیتابیس : 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);

}

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

+2 0
باید اطاعات ارسالی به سرور رو با url_encoder به utf-8 ببرید و بعد در سرور دیکد کنید . (11 سال پیش)
0 0
متوجه شدم اگه مثالی دارین ممنون میشم بذارید. (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  11 سال پیش
+2 0

زمانی که کد اطلاعات فرم رو از اندروید میفرستید به وب سرویس  از این کد استفاده کنید و اطلاعات رو انکود کنید :

   try {
URLEncoder.encode(username, "UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

موقعی که میخواید در سرور بخونید هم مقدار رو decode کنید .

 

 

 

0 0
من همه این کارارو کرده بودم،مشکلم با حرف "ی" بود،کد ارسالی "ی" با کدی که من اینزرت میکردم یا جستجو میکردم فرق داش! دلیل این تفاوتو کسی میدونه؟ (11 سال پیش)
پاسخ به سوال 
کاشی زاده  11 سال پیش
+2 0

یه سری حروف هستن در فارسی وجود دارن ولی در عربی نیستن که بهشون میگیم گچ پژ یه سری حروف هم هستن مثل ی و ک که هم در فارسی هستن و هم در عربی ولی نحوه نوشتنشون فرق میکنه درواقع شما در دیتابیس ی فارسی دارید ولی در هنگام ارسال از اپ ی عربی ارسال میشه برای رفع این مشکل باید کارکتر ی عربی رو با ی فارسی در موقع ارسال عوض کنید یا در سرور این کارو بکنید که بهتره

ی عربی 2 تا نقطه زیرش داره اگر دقت کرده باشید .

 

:)


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .