我有一個設備發送表示其設置的字符串數據,但數據在字符串中以Unicode(?)表示形式編碼。例如,設備發送表示字符串「System」的字符串「00530079007300740065006D」。 C#中是否有函數將把設備發送的字符串數據轉換爲實際的字符串?如果沒有,有人可以告訴我如何最好地執行此轉換?C# - 將字符串數據轉換爲實際字符串表示形式
2
A
回答
0
是的,.NET有一種內置的方法可以將給定的編碼類型轉換爲另一種類型,比如UTF8-> ASCII或其他類型。您需要的命名空間是System.Text.Encoding
。
1
這是不是一個內置功能,但它只有一行代碼:
string input = "00530079007300740065006D";
String output = new String(Enumerable.Range(0, input.Length/4)
.Select(idx => (char)int.Parse(input.Substring(idx * 4,4),
NumberStyles.HexNumber)).ToArray());
這裏的一個又一個,這也許是多了幾分高尚在沒有做哈克炭/ int cast:
string out2 =
Encoding.BigEndianUnicode.GetString(Enumerable.Range(0, input.Length/2)
.Select(idx => byte.Parse(input.Substring(idx * 2, 2),
NumberStyles.HexNumber)).ToArray());
1
完全跳上@威爾迪恩的解決方案在這裏(所以不要標記爲答案)。
如果你使用了威爾的解決方案很多,我建議它包裝成一個字符串擴展:
public static class StringExtensions
{
public static string HexToString(this string input)
{
return new String(Enumerable.Range(0, input.Length/4)
.Select(idx => (char) int.Parse(input.Substring(idx*4,4),
NumberStyles.HexNumber)).ToArray());
}
}
相關問題
- 1. 將數字轉換爲其字符串表示形式
- 2. 將單詞的整數表示形式轉換爲字符串
- 3. 將輸入字符串轉換爲六位數表示形式
- 4. 將數字轉換爲C#.NET中的字符串(字母)表示形式
- 5. 將表達式轉換爲字符串表示形式?
- 6. 如何將data.frame字符串表示形式轉換爲字符串變量
- 7. 將HEX字符串轉換爲c#中的實際字符串值
- 8. C++ - 將字符串轉換爲字符
- 9. 將字符串轉換爲字符串
- 10. C#將字符串轉換爲數字
- 11. 將國際格式的字符串轉換爲數字
- 12. C#將字節數組與字符串轉換爲字符串
- 13. 在Matlab中將數字轉換爲實際時間字符串
- 14. 不能將字符串隱式轉換爲字符串[]。在c#
- 15. Python:將字符串轉換爲其二進制表示形式
- 16. 將字符串轉換爲字符串
- 17. 將字符串轉換爲字符串
- 18. C - 將字符串(句子)轉換爲字符串列表
- 19. 將unicode轉換爲實際字符C#
- 20. 將字節轉換爲實際字節類型的字符串
- 21. 如何將字符串的二進制表示形式轉換回字符串?
- 22. 如何將字符串轉換爲其Base-10表示形式?
- 23. 將Python字符串轉換爲其ASCII碼錶示形式
- 24. 將unicode的字符串表示形式轉換爲unicode
- 25. 將unicode字符串轉換爲十六進制表示形式
- 26. Python3將Unicode字符串轉換爲int表示形式
- 27. 解密CLOB數據(以字符串形式),以實際字符串的
- 28. 將JSON字符串轉換爲C#字符串數組
- 29. 將表達式轉換爲字符串
- 30. 將比較運算符的字符串表示形式轉換爲實際的比較運算符
有可能是一個內置的功能,但不知道編碼「系統」的手段,該字符串其很難給你一個明確的解決方案。 – Jamiec 2010-07-30 14:48:51
回答上面我自己的意見。它絕對是十六進制。 – Jamiec 2010-07-30 15:06:41