簡體   English   中英

編碼問題:將vbscript“ Chr()”轉換為.Net C#

[英]Encoding issue: vbscript “Chr()” to .Net C#

我似乎找不到這個問題的答案。

似乎我應該能夠通過簡單地沿(char)MyInt的代碼做一些事情來復制vb的Chr()函數的行為,從而將C#中的數字轉換為字符。 然而,這種情況並非如此:

在帶有asp頁面的VB腳本中,如果我的代碼表明:

Response.Write(Chr(139))

它輸出:

‹ (character code 8249)

反對:

(字符代碼139)

我在編碼中缺少某些地方,但是找不到。 Chr()使用什么編碼?

我相信Chr()使用系統默認編碼-因此大致相當於:

byte[] bytes = new byte[] { 139 };
char c = Encoding.Default.GetString(bytes)[0];

在我的機器上(默認為Windows CP1252)確實提供了Unicode 8249。

如果您想從C#調用具有VB的Chr完全相同行為的東西,那么,為什么不簡單地調用它而不是嘗試推斷其行為呢?

只需輸入一個“使用Microsoft.VisualBasic;” 在C#程序的頂部,將VB運行時DLL添加到您的引用中,然后轉到城鎮。

如果將int轉換為char ,則將獲得具有整數形式的Unicode字符代碼的字符。 char數據類型只是一個16位UTF-16字符代碼。

要獲得.NET中的VBScript chr()函數的等效功能,您將需要以下內容:

string s = Encoding.Default.GetString(new byte[]{ 139 });

暫無
暫無

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

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