ช่วยด้วยครับ ผมลองทำ php+sql server odbc dirver คลังแลก มีปันหากับกาน insert ภาษา ไท ใน database ทำไงดีครับ
charset ที่ set ที่ database
set เป็นอะไรครับ
Date :
2018-09-12 13:24:42
By :
Jatmentz
คนไทยหรือเปล่าครับ ถ้าเป็นคนไทย ใช้คำให้ถูกต้องหน่อยครับ
การใช้ ภาษาไทย utf-8 สำหรับ sqlserver
1 field type ต้องเป็น ตระกูล Nxxxxxx เช่น nvarchar nchar ntext
2 เวลานำเข้าข้อมูล ด้วย sql statement ต้องมี N(อักษรตัวใหญ่) นำหน้าข้อมูล เช่น set fieldname = N'ภาษาไทย'
Date :
2018-09-12 13:34:33
By :
Chaidhanan
ไช้ N ' xxxx ' เปันตวอะไร ไม้รู้
ไม้ไช้ เปัน ??????
.แม่นแล้วข้อยมาอยากลาว ภาษาไทย กับ ลาว คายกัน ข้อยลอง ภาษาไทยกอไม้ออก
code
Date :
2018-09-13 11:02:10
By :
nueng lor
จากความเห็นที่ 5 ถ้าเซท ภาษาไทย โดยตรง ไม่ได้ใช้ อ่านค่ามาจาก database ต้องตรวจสอบ file type ว่าเป็น utf8 ด้วยหรือเปล่า
หรือเป็นแค่ ascii
จำเป็นต้องใช้ file type เป็น utf8 (with out bomb)
Date :
2018-09-13 14:44:12
By :
Chaidhanan
ลองใช้ notepad ของ window เปิดแล้ว save as ดูว่าเป็นเหมือนดังภาพไหม
Date :
2018-09-13 22:17:03
By :
Chaidhanan
https://www.thaicreate.com/php/php-sql-server-sqlsrv-utf8.html
ตาม No: 4 SiamHTTP
ดูดีๆ มันไม่ได้ยากอะไรเลย พี่เขากะบอก แต่คือไม่อ่าน ไม่ทำตาม คือสิให้เขาจับมือเขียนเลยบอ หรือ ต้องรอ Copy Code ไป Run
-----------
Data Type NVARCHAR()
-----------
เบิ่งเอาแน่การเขียน Code
1(PHP)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ThaiCreate.Com PHP & SQL Server (sqlsrv)</title>
</head>
<body>
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost\SQL2012";
$userName = "sa";
$userPassword = '';
$dbName = "mydatabase";
$connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword,
"MultipleActiveResultSets"=>true,"CharacterSet" => 'UTF-8');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "INSERT INTO customer (CustomerID, Name, Email, CountryCode, Budget, Used) VALUES (?, ?, ?, ?, ?, ?)";
$params = array($_POST["txtCustomerID"], $_POST["txtName"], $_POST["txtEmail"], $_POST["txtCountryCode"], $_POST["txtBudget"], $_POST["txtUsed"]);
$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
else
{
echo "Record add successfully";
}
sqlsrv_close($conn);
?>
</body>
</html>
2(PHP)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost\SQL2012";
$userName = "sa";
$userPassword = '';
$dbName = "mydatabase";
$connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword,
"MultipleActiveResultSets"=>true,"CharacterSet" => 'UTF-8');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "INSERT INTO customer (CustomerID, Name, Email, CountryCode, Budget, Used) VALUES (?, ?, ?, ?, ?, ?)";
$params = array($_POST["txtCustomerID"], $_POST["txtName"], $_POST["txtEmail"], $_POST["txtCountryCode"], $_POST["txtBudget"], $_POST["txtUsed"]);
$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
else
{
echo "Record add successfully";
}
sqlsrv_close($conn);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ThaiCreate.Com PHP & SQL Server (sqlsrv)</title>
</head>
<body>
</body>
</html>
1 ต่างจาก 2
-----------
1 น่าจะได้ ภาษาลาว ไทย English
2 มันบ่อ่าน เพราะ มันอยู่นอก HTML ,นอก <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
----------
เขียนระบบ Web ต่างๆ ต้องทำภายใน <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
----------
ถ้าเขียนระบบ
มี 2 หน้า
หน้ารับ.php มี HTML หมดครบทุกอย่าง
หน้าบันทึก.php บ่มี HTML บ่มี <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> จ้างภาษาไทย ลาว มันสิได้
---------
บ่เก่งกะศืกษาบ่แม่น ถ้าให้แต่คนจับมือเขียน พิการติ
Date :
2018-09-14 08:44:22
By :
Hararock
ตอบความคิดเห็นที่ : 11 เขียนโดย : Hararock เมื่อวันที่ 2018-09-14 08:44:22
รายละเอียดของการตอบ ::
บ่อแม่นบ่อศืกษา ข้อยกะศืกษาคืกัน ถ้าใช้ driver sqlsrv ข้อยกะเรัดได้ แต่บันหามันแม่น odbc driver ข้อยใช้โตนี
ขอดีของมันแม่น สามาด connect กับทุก database มีแต่แก้ไข datasouce กอใข้ได้เลีย. บ่อคื sqlsrv ทีใช้ได้แต่ sql server เท่านั้น
และกอบ่อต้อง dowload มา ติดตั้ง ใน webserver ทุกตวมีให้ สามาดใช้ได้เลีย
ข้อยกะอ่านตามกะทูนี้ทีเจีบันหาคืกัน กะยังบ่อได้คำตอบทีต้องกาน
https://www.thaicreate.com/php/forum/115316.html
[/li]
เรัดตาม link นีกะบ่อได้
[li]https://davidwalsh.name/php-odbc-nvarchar
[li][/li]
ข้อยรู้แต่ตอน select ต้องทำแบบนี
select Id,CAST(Name AS VARBINARY(MAX)) as Name from xxxxxx
แล้ว
iconv("UCS-2LE","UTF-8",$data["Name"]);
ภาษาไทย ลาว มันสิมาได้
insert ข้อยลองแบบนีกะบ่อได้
$value = $_POST['first_name'];
$value = iconv('UTF-8', $value);
$value = bin2hex($value);
$query = "INSERT INTO tbl_sample(first_name, last_name) VALUES (CONVERT(nvarchar(MAX), 0x'.$value.'),'หกกหฟกหก')";
ข้อยพะยายามแล้วจืงถาม. ถ้าอยากเบี่ง HTML กะตามนี แต่ถ้ารู้คำตอบกะบอกกันแน่
Code
<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/fontawesome-all.min.css">
<link rel="stylesheet" href="css/bootadmin.min.css">
<link rel="stylesheet" href="css/datatables.min.css">
<link rel="stylesheet" href="css/fullcalendar.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/bootadmin.min.js"></script>
<script src="js/datatables.min.js"></script>
<script src="js/moment.min.js"></script>
<script src="js/fullcalendar.min.js"></script>
<title>System Name</title>
</head>
<body class="bg-light" style="font-family: 'Phetsarath OT'">
<?php session_start();
if($_SESSION['ses_id']==''){
echo "<meta http-equiv='refresh' content='1;URL=../../index.php'>";
}elseif($_SESSION['ses_id']!=''){
} ?>
<nav class="navbar navbar-expand navbar-dark bg-dark shadow">
<a class="sidebar-toggle mr-3" href="#"><i class="fa fa-bars"></i></a>
<a class="navbar-brand" href="#">System Name</a>
<div class="navbar-collapse collapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item"><a href="../../main/main.php" class="nav-link"><i class="material-icons"></i><font size="4"> ກັບສູ່ໜ້າຫຼັກ</font></a></li>
</ul>
</div>
</nav>
<div class="d-flex">
<div class="sidebar sidebar-dark bg-dark ">
<ul class="list-unstyled">
<li>
<li><a href="manag_category.php">ຈັດການຂໍ້ມູນສິນຄ້າ</a></li>
<li><a href="#">ຈັດການຂໍ້ມູນປະເພດສິນຄ້າ</a></li>
<li><a href="#">ຈັດການຂໍ້ມູນອັດຕາແລກປ່ຽນ</a></li>
<li><a href="#">ຈັດການຂໍ້ມູນຜູ້ໃຊ້</a></li>
</li>
<li>
<a href="#sm_expand_1" data-toggle="collapse">
ຕັ້ງຄ່າລະບົບ
</a>
<ul id="sm_expand_1" class="list-unstyled collapse">
<li><a href="#">ຈັດການສາງ</a></li>
<li><a href="#">ຈັດການຂໍ້ມູນພະແນກ</a></li>
</ul>
</li>
</ul>
</div>
<div class="content p-4">
<div class="card mb-4">
<div class="card-header bg-white font-weight-bold">
<h4>ຈັກການຂໍ້ມູນສິນຄ້າ</h4>
</div>
<div class="card-body">
<div align="right">
<button type="button" class="btn btn-success" title="ເພີ້ມລາຍການ" name="add" id="add" data-toggle="modal" data-target="#add_data_Modal">ເພີ້ມລາຍການ</button>
<h1> </h1>
</div>
<table id="example" class="table table-hover" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>last name</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<div id="add_data_Modal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">ເພີ້ມລາຍການ</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<form method="post" id="insert_form" autocomplete="off">
<label>First name</label>
<input type="text" name="first_name" id="first_name" class="form-control" style="width:250px" />
<br />
<label>Last name</label>
<input type="text" name="last_name" id="last_name" class="form-control" style="width:250px"/>
<!-- <textarea name="address" id="address" class="form-control" style="width:250px"></textarea> -->
<br />
<input type="submit" name="insert" id="insert" value="ເພີ້ມລາຍການ" class="btn btn-success" />
<h5> </h5>
<div id="myAlert" class="alert alert-danger collapse">
<button type="button" class="close" id="linkClose">×</button>
<strong>ຜິດພາດ! :</strong> ກະລູນາປ້ອນຂໍ້ມູນໃຫ້ຄົບ ຂໍຂອບໃຈ.
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div id="dataModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Employee Details</h4>
</div>
<div class="modal-body" id="employee_detail">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
var dataTable = $('#example').DataTable({
"processing":true,
"serverSide":true,
"order":[],
"ajax":{
url:"select.php",
type:"POST"
}
});
$('#linkClose').click(function () {
$('#myAlert').hide('fade');
});
$('#insert_form').on("submit", function(event){
event.preventDefault();
if($('#first_name').val() == "")
{
$('#myAlert').show('fade');
}
else if($('#last_name').val() == '')
{
$('#myAlert').show('fade');
}
else
{
$.ajax({
url:"insert.php",
method:"POST",
data:$('#insert_form').serialize(),
beforeSend:function(){
$('#insert').val("ເພີ້ມລາຍການ");
},
success:function(data){
$('#insert_form')[0].reset();
$('#add_data_Modal').modal('hide');
dataTable.ajax.reload();
}
});
}
});
});
</script>
</body>
</html>
Date :
2018-09-14 10:50:08
By :
nueng lor
Load balance : Server 01