簡體   English   中英

如何使用ajax請求將印地語字體從客戶端傳遞到服務器

[英]how to pass hindi fonts from clients to server using ajax request

我正在使用 ajax 請求將值從客戶端發送到服務器端,以使用 ajax 請求插入到 mysql 數據庫中。 該值以印地語表示(हिन्दी मतलब जाने)。 但是在客戶端,當我提醒它時,我得到了如上所示的印地文文本,但在處理服務器端請求后,它會以%u0939%u093F%u0928%u094D%u0926%u0940 %u092E%u0924%...插入到數據庫中%u0939%u093F%u0928%u094D%u0926%u0940 %u092E%u0924%...

我在客戶端使用過

request1h[k].setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8;");
request1h[k].send(requestDatah); 

並在帶有 php 的服務器端標頭上

<?php header("Content-Type: text/html; charset=utf-8");
mysqli_set_charset($con,"utf8");

然后我閱讀了 utf8_encode 並在帖子值上使用了它

$value1 = utf8_decode($_POST['values']);

但我仍然無法按原樣在數據庫中插入印地文文本。 請幫我怎么辦?

為了插入您的數據庫,您可以嘗試使用 UTF8 和 COLLECTION UTF8 GENERAL 使用這些設置數據庫

一個用於顯示語言的印地語,您可以將其放在您的頁面 HTML 上:下一個:

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

對於特殊字符和其他語言,您可以使用 utf8

使用btoa函數對以 base-64 編碼的字符串進行編碼:它以字符串形式返回值,表示以base-64編碼的字符串。

默認情況下,JavaScript 中的內置函數(例如btoaatob )不支持 Unicode 字符串,因為這兩個函數都將其所有字符視為 16 位編碼字符串。 所以你必須先使用encodeURIComponent函數。

 base64_encode = function(str = "") { return btoa(unescape(encodeURIComponent(str))); }; function log(message) { var client = new XMLHttpRequest(); client.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { json = JSON.parse(this.response); console.log(json.form); } }; client.open("POST", '//httpbin.org/post'); client.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); client.send(message); } data = "key_name=" + base64_encode("हिन्दी मतलब जाने"); log(data);

如果您需要將該 base64 解碼為您發布數據的 PHP 文件中的值,請使用以下命令:

// this will return 'हिन्दी मतलब जाने'
$value = base64_decode($_POST['key_name']);

並且在向數據庫輸入數據時,請確保必須設置表中的字符集utf8_general_ci

如果這是您的問題,您可以使用以下查詢轉換表:

ALTER TABLE `YOUR_TABLE_NAME` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM