[英]JSON is not Retrieved When Put on the Server but Does Work on Localhost using XAMPP
[英]RAD Server Delphi - using savetostream und loadfromstream does not work because of mutated vowels after Json conversion
我嘗試通過 RadServer IIS Package 和 Delphi Client 與 EMSEndpoint 交換數據。 我嘗試的東西對我來說看起來很簡單,但我現在無法完成。
在包中有一個指向 MSSql 服務器的 TFDConnection。 TFDQuery 與該連接相連。 使用此代碼,我創建了 JSON 響應(服務器端):
var lStream: TStringStream := TStringStream.create;
FDQuery.SaveToStream(lStream,sfJSON);
AResponse.Body.SetStream(lStream,'application/json' ,True);
使用該代碼,我嘗試將數據集加載到 TFDMemtable(客戶端)中:
lstrstream: TStringStream := TStringStream.create(EMSBackendEndpoint.Response.Content);
aMemtable.LoadFromStream(lstrstream, sfJSON);
Memtable 說[FireDac][Stan]-719 invalid JSON storage format
怎么會這樣? 我知道問題出在哪里,我的流中有 äöü 符號,但是當我將它從一個組件加載到另一個組件時,它應該可以工作,不是嗎? 有什么建議我可以嘗試嗎? 到目前為止我嘗試過的:
JSON 最常使用 UTF-8 進行交換,但默認情況下TStringStream
在 Windows上不使用 UTF-8,僅在 Posix 系統上使用。 嘗試使用TStringStream.Create(..., TEncoding.UTF8)
強制使用 UTF-8。
這假設FDQuery.SaveToStream()
使用 UTF-8 保存,而aMemtable.LoadFromStream()
使用 UTF-8 加載,否則您仍然會遇到編碼不匹配的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.