簡體   English   中英

LURACAST Restler框架-處理歐洲字符時出現的問題

[英]LURACAST Restler framework - Issue in handling european characters

我正在使用restler PHP API托管REST服務。 我在處理某些歐洲字符時遇到問題,否則工作正常。

例如,我在MySQL數據庫中有字符串“Českýrozhlas 1-Radiožurnál”。 當restler API將數據轉換為JSON時,數據的轉換方式如下:“?esk \\ u00fd rozhlas 1-Radio \\ u009eurn \\ u00e1l”

在這里,第一個字符被轉換為問號。

如何使用restler PHP服務正確轉換數據?

在處理Unicode時,我們需要確保一路使用utf-8

首先,您需要確保MySQL數據庫正在使用utf-8編碼。 您可以運行以下sql來確保

ALTER TABLE your_table_name_here CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

接下來,您需要確保MySQL與PHP對話時會吐出utf-8。

您可以使用以下命令

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');

如果使用的是PDO,則需要使用以下命令來連接數據庫

$db = new PDO(
          'mysql:host=localhost;dbname=data_pdo_mysql', 'username', 'password',
          array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")
      );

這些更改之后,restler結果應變為

"\u010cesk\u00fd rozhlas 1 - Radio\u017eurn\u00e1l"

這是具有完整數據的有效JSON,其中使用Unicode轉義序列對Unicode字符進行轉義。

暫無
暫無

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

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