|
|
|
แทรกข้อความภาษาไทย C# ส่งมาให้ php webservice แทรกข้อมูลลง ms sql ข้อความเป้น ??? รบกวนด้วยครับ |
|
|
|
|
|
|
|
แทรกข้อความภาษาไทย C# ส่งมาให้ php webservice แทรกข้อมูลลง ms sql ข้อความเป้น ??? รบกวนด้วยครับ
โค้ด C#
โค้ด php
Code (PHP)
<?php
require_once("lib/nusoap.php");
//Create a new soap server
$server = new soap_server();
$objConnect = mssql_connect("ITUCHKUB-PC", "sa", "aa") or die("Error Connect to Database");
$objDB = mssql_select_db("Medical_Records");
//Define our namespace
$namespace = "https://www.thaicreate.com/android/WebServiceServer.php";
$server->wsdl->schemaTargetNamespace = $namespace;
//Configure our WSDL
$server->configureWSDL("HelloWorld");
// Register our method and argument parameters
$BorrowOPD = array(
'HN' => "xsd:string",
'department' => "xsd:string",
'check_R,' => "xsd:string",
'name_B,' => "xsd:string",
'position_b,' => "xsd:string",
);
$ReturnOPD = array(
'HN' => "xsd:string",
'name_r,' => "xsd:string",
'position_r,' => "xsd:string",
);
$server->register('BorrowOPD', $BorrowOPD, array('return' => 'xsd:string'));
$server->register('ReturnOPD', $ReturnOPD, array('return' => 'xsd:string'));
function BorrowOPD($HN, $department, $check_R, $name_B, $position_b) {
$strSQL = "SELECT [HN],[FIRSTNAME],[LASTNAME] FROM PATIENT_NAME WHERE HN = '$HN'";
$objQuery = @mssql_query($strSQL);
$objSelect = @mssql_fetch_array($objQuery);
if (!$objSelect) {
$state = "not found";
} else {
$Tim = date("H:i");
$da = date("d/m/Y");
$strSQL2 = "SELECT * FROM OPD_LogBR WHERE HN = '$HN' AND date_R IS NULL";
$objQuery2 = @mssql_query($strSQL2);
$objSelect2 = @mssql_fetch_array($objQuery2);
if (!$objSelect2) {
$HN = "$objSelect[HN]";
$name = "$objSelect[FIRSTNAME]";
$sername = "$objSelect[LASTNAME]";
$Tim = date("H:i");
$da = date("d/m/Y");
$strSQL = "INSERT INTO OPD_LogBR (HN,name,sername,department,check_R,date_b,time_b,name_borrow,position_b) VALUES ('$HN','$name','$sername','$department','$check_R','$da','$Tim','$name_B','$position_b')";
$objInsert = @mssql_query($strSQL);
$state = "Record inserted";
} else {
$state = "Record already";
}
}
return $state;
}
function ReturnOPD($HN, $name_R, $position_R) {
$strSQL = "SELECT * FROM OPD_LogBR WHERE HN = '$HN' AND date_R IS NULL";
$objQuery = @mssql_query($strSQL);
$objSelect = @mssql_fetch_array($objQuery);
if (!$objSelect) {
$state = "not found";
} else {
$Tim = date("H:i");
$da = date("d/m/Y");
$strSQL2 = "UPDATE OPD_LogBR SET date_r='$da',time_r='$Tim',name_return='$name_R',position_r='$position_R' WHERE HN = '$HN'";
$objUpdate = @mssql_query($strSQL2);
$state = "Record Update";
}
return $state;
}
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
?>
Tag : .NET, Win (Windows App), C#, Android, Web Service
|
|
|
|
|
|
Date :
2014-09-13 00:42:13 |
By :
ituchkub |
View :
1079 |
Reply :
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ภาษาไทย ใน DB ใช้ charset เป็นอะไรครับ
ภาษาที่ส่งผ่าน internet ส่วนใหญ่จะถูกแปลงเป็น utf-8
ลองใช้ คำสั่ง iconv แปลงภาษาให้ตรงตามต้องการครับ
|
|
|
|
|
Date :
2014-09-13 05:58:07 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ง่ายที่สุดก็เอา "เอ็นแปะหน้า" ดังนี้
Code (SQL)
Insert into tblXXX (Field1, Field2, Field3) Values (N'ไทย', N'ฝรั่ง', 1234.55)
|
|
|
|
|
Date :
2014-09-13 06:10:08 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ประโยชน์ของ N นอกเหนือจากข้างบน มันยังสามารถผ่านค่าพารามิเตอร์แบบ อะเรย์ ได้ด้วย เช่น
Code (SQL)
Select * From tblXXX Where Field1 IN N{'x', 'y', 'z'}
|
|
|
|
|
Date :
2014-09-13 06:16:36 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คงเดาออกนะครับ
|
|
|
|
|
Date :
2014-09-13 10:53:44 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ทราบครับ
|
ประวัติการแก้ไข 2014-09-13 12:10:35 2014-09-13 12:12:01
|
|
|
|
Date :
2014-09-13 11:58:01 |
By :
ituchkub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รับค่าเป็นแบบโพส ได้ครับเป็นภาษาไทย
|
|
|
|
|
Date :
2014-09-13 12:32:59 |
By :
ituchkub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วนหัวของ html ที่ต้องใส่ครับ ที่เห็น ภาษาถูกต้องแล้วครับ ผิดที่การแสดงผลครับ
ข้างล่างเป็นส่วนที่ต้องกำหนด ในส่วนของ html ครับ
Code (XML)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
ตารางที่ต้องการแสดงเอาโค๊ดที่แสดงตารางใส่ตรงนี้
</body>
</html>
กรณีที่รับค่าจากการโพสได้ แล้ว คิวรี่่ที่เทสต์ ผิด ก็ต้องลองเช็คไฟล์ ที่เขียนดูครับว่าเป็น utf8 ธรรมดา หรือ BOM utf8
สำหรับผมใช้ utf8 ธรรมดา ครับ ยังปวดหัวกับ bom อยู่ เลยไม่ได้ใช้ Bom
ว่าจะเข้าไปค้นเรื่องนี้อยู่เหมือนกันพอดีมีงานเข้าเลยพักไว้ก่อน เลยผลัดแล้วผลัดเล่าไม่ได้ค้นซักที
คงต้องถึงเวลาเข้าไปค้นหาความรู้เรื่องนี้จริงๆจังๆบ้างแล้ว
|
ประวัติการแก้ไข 2014-09-13 20:54:36
|
|
|
|
Date :
2014-09-13 20:46:36 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แยกออกเป็น 2 ส่วนครับ
- รูปแบบข้อความทีส่งมาจะต้องเป็บแบบ UTF-8
- SQL Server ให้ไปใช้ NVarchar ครับ
|
|
|
|
|
Date :
2014-09-14 09:44:12 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (Server)
$server->soap_defencoding = 'UTF-8';
$server->decode_utf8 = false;
$server->encode_utf8 = true;
Code (Server)
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
|
|
|
|
|
Date :
2014-09-14 09:46:30 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกคนครับ
|
|
|
|
|
Date :
2014-09-16 23:52:28 |
By :
ituchkub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|