簡體   English   中英

如何在C中更改編碼為utf 8的字符串

[英]How to change a strings encoding as utf 8 in C

如何將字符串的字符編碼更改為UTF-8? 我正在對python程序進行一些execv調用,但是python返回的字符串帶有切掉的某些字符。 我不知道這是python還是c的問題,但我想如果我可以更改c中的字符串編碼,然后將其傳遞給python,就可以解決問題。 那我該怎么辦呢?

謝謝。

C中沒有字符編碼之類的東西。

char*可以保存任何數據,如何解釋字符取決於您自己。 例如, printf通常會將字符原樣轉儲到標准輸出中,並且如果您的控制台將這些字符解釋為UFT8,它們將像這樣顯示。

如果要在C端的不同編碼之間進行轉換,可以看一下ICU

如果要在Python端的編碼之間進行轉換,請查看http://docs.python.org/howto/unicode.html

C作為一種語言不利於字符串編碼。 AC字符串只是一個以零結尾的字符序列(在大多數系統上為8位帶符號整數)。

寬字符串(字符類型為wchar_t ,通常為16位整數)也可以用於容納較大的字符值; 但是,同樣,C標准庫函數和數據類型根本不了解任何字符串編碼的概念。

您問題的答案是確保將傳遞給Python的字符串編碼為UTF-8。

為了幫助您以任何詳細的身份完成此操作,您將必須提供有關當前字符串的形成方式,字符串包含的內容以及如何為exec構造參數列表的更多信息。

暫無
暫無

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

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