我有一個設備發送表示其設置的字符串數據,但數據在字符串中以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#將字節數組與字符串轉換爲字符串
- 5. 將字符串轉換爲字符串
- 6. 將字節轉換爲實際字節類型的字符串
- 7. 如何將字符串的二進制表示形式轉換回字符串?
- 8. 將unicode字符串轉換爲十六進制表示形式
- 9. 將Python字符串轉換爲其ASCII碼錶示形式
- 10. 解密CLOB數據(以字符串形式),以實際字符串的
- 11. 將JSON字符串轉換爲C#字符串數組
- 12. 將表達式轉換爲字符串
- 13. 將字符串數組轉換爲JSON格式的字符串
- 14. 將字符串文字轉換爲實際值
- 15. Flex將數字字符串轉換爲指數形式
- 16. 如何將數據框轉換爲RDD [字符串,字符串]?
- 17. 將字符串轉換爲整數C#
- 18. InfixToPostfix將字符轉換爲字符串
- 19. 將字典<字符串,字符串>轉換爲數組
- 20. 將字符串轉換爲字符
- 21. 將字符串轉換爲數據集
- 22. .NET將數字轉換爲字符串表示形式(1對1,2對2等)
- 23. 將ASCII字符串轉換爲USB UTF16字符串格式表示爲使用shell命令的shell字符串
- 24. 將字符串轉換爲格式爲
- 25. 無法將類型'字符串'隱式轉換爲'字符串'
- 26. 將字符串轉換爲字符
- 27. CMake的函數字符串轉換爲C字符串字面
- 28. 將字符串轉換爲字列表?
- 29. 從字符串轉換爲字符 - C++
- 30. 將字符串列表轉換爲字符串列表
有可能是一個內置的功能,但不知道編碼「系統」的手段,該字符串其很難給你一個明確的解決方案。 – Jamiec 2010-07-30 14:48:51
回答上面我自己的意見。它絕對是十六進制。 – Jamiec 2010-07-30 15:06:41