1. 程式人生 > >【走過的彎路】UTF-8編碼轉GB2312

【走過的彎路】UTF-8編碼轉GB2312

1.說明:UTF-8和GB2312沒有直接的轉換關係,需要通過查表的方式來裝換,表碼如下連結:

http://wenku.baidu.com/link?url=U99KgZDiS3k33Pl7f9UFQo5puGScd462DzzpCOTgl-Hu1I9liubC7gUooKp6FLas4Wn6OTUYWmHATKxzOmFvZaSAh9LtsBdQrS3MlzPulwu

2.誤區:先把UFT-8轉成unicode,再通過Unicode轉換成GB2312,如連結:http://www.cnblogs.com/pengyingh/articles/2451429.html,可以看到UFT-8轉成unicode後,再通過wcstombs函式轉成GB2312,wcstombs是一個

寬字元轉換成多字元函式,猜測裡面包含了很多表,在網頁等程式設計中是用WideCharToMultiByte() 函式等;

CC2541的#include <stdlib.h>中找不到這個wcstombs函式,所以只能自己做表,在做表的過程中,發現CC2541根本放不小這麼大的表;

3.解決措施:

本來設計是將IOS推送過來的訊息UTF-8(3位元組)轉成GB2312(2位元組)flash字型檔顯示,現在UFT-8無法轉成GB2312,所以果斷把字型檔做成UTF-8字型檔了;

相關推薦

走過彎路UTF-8編碼GB2312

1.說明:UTF-8和GB2312沒有直接的轉換關係,需要通過查表的方式來裝換,表碼如下連結: http://wenku.baidu.com/link?url=U99KgZDiS3k33Pl7f9UFQo5puGScd462DzzpCOTgl-Hu1I9liubC7gUoo

EncodingUTF-8編碼規則

UTF-8是一種變長位元組編碼方式。對於某一個字元的UTF-8編碼,如果只有一個位元組則其最高二進位制位為0;如果是多位元組,其第一個位元組從最高位開始,連續的二進位制位值為1的個數決定了其編碼的位數,

ASPUTF-8編碼的vbscript頁面,除錯資訊的亂碼問題

在被UTF-8編碼的vbscript頁面,在寫程式的過程中,不小心寫錯的話,在頁面的輸出資訊是亂碼的,如下圖所示: 讓人無法得知錯誤的原因。 畢竟在vbscript最初發展的時候,UTF-8編碼還沒有普及,都是預設以伺服器系統的預設編碼來跑網頁,這與現在網頁皆用UTF-8

golang 八進位制 utf-8 編碼中文

當除錯程式,打印出變數的值時,有可能輸出的是八進位制 utf-8 編碼(尤其是 protobuf 變數) 例如:\346\200\241\346\200\241\346\200 這樣的字串如果作為字面量,go可以自動轉化, 但如果是從檔案或string中讀

linux 下URL中 UTF-8編碼GB2312編碼與漢字之間的轉換

下面是UTF-8編碼的轉換程式碼 #include <string.h> #include <stdio.h> #include <stdlib.h> /* 16進位制字元表 */ static const char c2x_table[] = "0

Python基礎字符編碼ASCII-GBK-Unicode-UTF-8之間的關系

精準 應該 寫入 歷程 UC tran 執行 文件 總結 字符編碼 由於計算機只識別0和1,為了使計算機能夠支持文字和字母等符號,方便實用操作計算機 於是字符編碼應運而生,旨在解決符號和人類語言與計算機0和1建立起一種對應關系 據說不理解字符編碼可能是程序員一輩子的遺憾,拿

okhttpPost請求設定utf-8編碼(解決漢語請求亂碼問題)

 如果用FormBody 傳送post表單請求,就不能設定編碼格式,contentType方法沒有暴露出來,預設也不是UTF-8,引數是漢字就會亂碼。 所以換一種方式 ,用   RequestBody

php iconv() utf-8 編碼字串中文GB2312出錯的問題

PHP iconv 函式轉gb2312的bug解決方法 問題:發現iconv在轉換字元"—"到gb2312時會出錯: iconv( "UTF-8", "gb2312//IGNORE" , $data)  ignore的意思是忽略轉換時的錯誤,如果沒有ignore引數,所有該字元後面

Java實現將任何編碼方式的txt檔案以UTF-8編碼方式

本文利用JDK中的BufferedReader和BufferedWriter實現將任何編碼方式的txt檔案以UTF-8編碼方式轉存。 UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼,由Ken Thompson於199

IOS編碼GB2312UTF-8

GB2312轉換為UTF-8的方法 + (NSData *)UTF8WithGB2312Data:(NSData *)gb2312Data { NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding

php iconv() utf-8 編碼字串中文GB2312出錯的問題

PHP iconv 函式轉gb2312的bug解決方法 問題:發現iconv在轉換字元"—"到gb2312時會出錯: iconv( "UTF-8", "gb2312//IGNORE" , $data)  ignore的意思是忽略轉換時的錯誤,如果沒有ignore引數,所有

將assic編碼的json字串化為utf-8編碼的json字串

一、匯入模組 import urllib.request import urllib.parse import json 二、指定url,構造headers,構造請求引數 1.指定url url = 'http://fanyi.baidu.c

UTF-8編碼下,二進位制和漢字互

<?php function StrToBin($str){ $arr = preg_split('/(?<!^)(?!$)/u', $str); foreach($arr as &$v){ $temp = unpa

C語言實現windows1251編碼utf-8編碼

windows1251是俄羅斯本地的一種編碼,不通用。mini xml好像無法解析,但客戶就是提供一個這種編碼檔案的url,讓你解析裡面的資料。 開源的編碼轉換庫又太大,只好用C語言寫一個。有些字元轉換沒什麼規律,只能一一對應,很耿直的轉換方式,哈哈~~,不過以後如果遇到相

vbs gb2312轉換為UTF-8編碼的函式

<% 1、'UTF轉GB---將UTF8編碼文字轉換為GB編碼文字 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr)   '如果UTF8編碼文字以%開頭則進行轉換   if mid(UTFStr,Dig,1)="%"

ISO 8859(GBK) 編碼檔案碼到UTF-8編碼檔案

問題產生:          現需要把一個在windows的Myeclipse下開發的小程式,轉到Linux系統下去安裝執行,結果程式中的.java檔案中的中文到Linux下vim顯示全是亂碼。        現做以下分析:其主要原因是windows中Myeclipse中預

將UCS-2 Little Endian(即 utf-16)編碼的txt檔案批量化為utf-8編碼(python)

折騰了好久,終於搞定了。參考連結:python使用codecs模組進行檔案操作-讀寫中英文字元 - CSDN部落格 http://blog.csdn.net/chenyxh2005/article/details/72465758#t0程式碼:import os import

utf-8編碼的字串成unicode(ucs-4)編碼的字串

本人第一篇原創部落格,盡力把程式碼註釋清楚,如有錯誤之處,敬請指出 typedef unsigned int mfchar_t;// 無符號的4位元組,用於容納UCS-4的一個字元 typedef std::basic_string<

UTF-8編碼規則(

結果,這個問題比我想象的複雜,從午飯後一直看到晚上9點,才算初步搞清楚。 下面就是我的筆記,主要用來整理自己的思路。但是,我儘量試圖寫得通俗易懂,希望能對其他朋友有用。畢竟,字元編碼是計算機技術的基石,想要熟練使用計算機,就必須懂得一點字元編碼的知識。 1. ASCII碼 我們知道,在計算機內部,所

LeetCodePython 8.字串整數 (atoi)

字串轉整數 (atoi) 題目:實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則