本文目錄一覽:
- 1、弱弱的問一句,C語言能不能實現字元串的編碼格式轉換 GB2312toUTF-8?
- 2、linux C語言:如何在ISO8859-1和GB2312字元編碼之間互相轉換
- 3、用c語言怎樣得到一個漢字的GB2312編碼
弱弱的問一句,C語言能不能實現字元串的編碼格式轉換 GB2312toUTF-8?
其實 linux 和 windows 的系統函數都是C函數,並且提供了GB2312toUTF-8的函數,所以C語言是可以實現轉碼的。以下是windows的例子:int num = ::MultiByteToWideChar(CP_ACP, 0, “你好”, -1, NULL, 0);wchar_t* m_arrayShort = new wchar_t[num];::MultiByteToWideChar(CP_ACP, 0, “你好”, -1, m_arrayShort, num); int len = ::WideCharToMultiByte (CP_UTF8, 0, (LPCWSTR)m_arrayShort, num, 0, 0, NULL, NULL);char *tmpPT = new char[len+1];::WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)m_arrayShort, num, tmpPT, len, NULL, NULL);tmpPT[len] = 0;
linux C語言:如何在ISO8859-1和GB2312字元編碼之間互相轉換
JAVA有一個public String(byte bytes[], Charset charset)函數可以用指定位元組數組和編碼來構造字元串。一個public byte[] getBytes(Charset charset)函數把字元串按指定編碼來得到位元組數組。可以用這兩個函數來實現編碼轉換。
下面是一個簡單的例子,注意一下例子中的文字本身的編碼,最好在自己的環境中用gb2312重新輸入,不然可能是亂碼。當然轉換後輸出肯定有一個是亂碼,也肯能都是亂碼。根據你的編輯器的編碼格式有關。public class EncodingTest
{
public static void main(String[] args)
{
try
{
String gb = new String(“國標2312”.getBytes(),”gb2312″);
System.out.println(gb);
byte [] b = gb.getBytes(“gb2312”);
String ios = new String(b,”ISO-8859-1″);
System.out.println(ios);
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}
用c語言怎樣得到一個漢字的GB2312編碼
源代碼是GB2312編碼方式寫的就比較簡單
void printgb(unsigned char* s) {
while (*s) {
if (*s = 0x7f) {
printf(“%02x%02x “, *s, *(s+1));
s += 2;
}
else {
printf(“%04x “, *(s++));
}
}
}
int main() {
printgb(“2017你好中國great china”);
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239383.html