国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

UTF-8轉(zhuǎn)GBK

這篇具有很好參考價值的文章主要介紹了UTF-8轉(zhuǎn)GBK。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

參考鏈接:https://blog.csdn.net/yanchao7788/article/details/53196901

參考鏈接:你真的懂 Unicode 和 UTF-8 是什么關(guān)系嗎?來看看這個就徹底懂了!_魔都飄雪的博客-CSDN博客_utf8和unicode的關(guān)系

UTF-8沒辦法直接轉(zhuǎn)GBK,必須先轉(zhuǎn)成unicode,再轉(zhuǎn)成GBK

1.把UTF-8轉(zhuǎn)成unicode,根據(jù)參考的鏈接,我做了實現(xiàn)。

2.把unicode轉(zhuǎn)成GBK,這里的代碼是FATFS文件系統(tǒng)里的,可以自己取官網(wǎng)下,里面的數(shù)組太長了,自己去下吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-508240.html

typedef unsigned int	UINT;	/* int must be 16-bit or 32-bit */
typedef unsigned char	BYTE;	/* char must be 8-bit */
typedef unsigned short	WORD;	/* 16-bit unsigned integer */
typedef unsigned int	DWORD;	/* 32-bit unsigned integer */
typedef WORD			WCHAR;	/* UTF-16 character type */


void ff_utf8touni(BYTE *inputS,//input string
                  WORD sLength,//string's length
                  DWORD *outputArr,//output Arr
                  WORD arrLength)//output arr max length
{
    WORD i,j,k,t,outputIndex,num;
    DWORD data;
    BYTE ch;
    outputIndex = 0;
    
    for(i=0;i<arrLength;i++)
    {
        outputArr[i] = 0;
    }

    if(sLength == 0 || arrLength == 0)return;


    for(i=0;i<sLength;)
    {
        ch = inputS[i];
        if(ch & 0X80)
        {
            num = 0;
            for(j=0;j<6;j++)//計算總共多少個個數(shù)
            {
                if(ch&0X80)
                {
                    num++;
                    ch <<= 1;
                }
                else
                {
                    break;
                }
            }
            if(i+num > sLength)break;

            k = 8 - (num+1);
            t=0;
            for(j=0;j<k;j++)
            {
                t <<= 1;
                t |= 1;
            }
            data = inputS[i] & t;//第一個字節(jié)

            for(j=1;j<num;j++)//其他的字節(jié)
            {
                data <<= 6;
                data |= inputS[i+j]&0X3F;
            }

            outputArr[outputIndex++] = data;

            i+=num;
        }
        else
        {
            outputArr[outputIndex++] = ch;
            i++;
        }

        if(outputIndex >= arrLength)break;
    }

}



WCHAR ff_uni2oem (	/* Returns OEM code character, zero on error */
	DWORD	uni	/* UTF-16 encoded character to be converted */
)
{
	const WCHAR *p;
	WCHAR c = 0, uc;
	UINT i, n, li, hi;


	if (uni < 0x80) {	/* ASCII? */
		c = (WCHAR)uni;

	} else {			/* Non-ASCII */
		if (uni < 0x10000) { /* Is it in BMP? */
			uc = (WCHAR)uni;
			p = 0;
            /* DBCS */
            //switch (cp) {	/* Get conversion table */
            //case 932 : p = uni2oem932; hi = sizeof uni2oem932 / 4 - 1; break;
            //case 936 : p = uni2oem936; hi = sizeof uni2oem936 / 4 - 1; break;
            //case 949 : p = uni2oem949; hi = sizeof uni2oem949 / 4 - 1; break;
            //case 950 : p = uni2oem950; hi = sizeof uni2oem950 / 4 - 1; break;
            //}
            p = uni2oem936; hi = sizeof uni2oem936 / 4 - 1;
            if (p) {	/* Is it valid code page? */
                li = 0;
                for (n = 16; n; n--) {	/* Find OEM code */
                    i = li + (hi - li) / 2;
                    if (uc == p[i * 2]) break;
                    if (uc > p[i * 2]) {
                        li = i;
                    } else {
                        hi = i;
                    }
                }
                if (n != 0) c = p[i * 2 + 1];
            }

		}
	}

	return c;
}

到了這里,關(guān)于UTF-8轉(zhuǎn)GBK的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • docker pull鏈接不到外網(wǎng)Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request

    docker pull鏈接不到外網(wǎng)Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request

    因為一些安全原因,公司的機器網(wǎng)絡(luò)環(huán)境不能直接訪問外網(wǎng),需要配置代理才能夠訪問,導(dǎo)致我使用拉取鏡像的時候連接不到,報了如下的錯誤: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while 一般來說主機通過代理訪問外網(wǎng)方式就是通過在命令行

    2024年02月12日
    瀏覽(27)
  • .Net 中實體類轉(zhuǎn)換為XML字符串, 確保字符串頭部是utf-8 不是utf-16

    使用 Utf8StringWriter 或類似的方法來確保在序列化過程中使用正確的編碼。然而, Utf8StringWriter 不是.NET Core或.NET Standard庫的一部分,因此你需要自己實現(xiàn)一個。 不過,有一種更簡單的方法可以達到相同的效果,那就是使用 StringWriter 與 Encoding.GetEncoding(\\\"utf-8\\\") 結(jié)合,但這實際上

    2024年01月23日
    瀏覽(31)
  • 為什么要給數(shù)據(jù)庫加索引?轉(zhuǎn)自 https: //blog.tankery.me/development/why-we-need-indexes-for-database

    為什么要給數(shù)據(jù)庫加索引?轉(zhuǎn)自 https: //blog.tankery.me/development/why-we-need-indexes-for-database

    這篇文章不是數(shù)據(jù)庫索引的使用文檔,不會給每個功能的使用都做介紹,而是通過我自己的案例,對案例中遇到的幾個點做詳細的說明。如果想查看具體的使用幫助,可以參考官網(wǎng)的文檔:Query Planning “老譚,測試發(fā)現(xiàn)睡眠歷史記錄頁面的打開速度太慢了,你給快速解決一下

    2024年02月03日
    瀏覽(14)
  • 開箱即用的企業(yè)級前后端分離【.NET Core6.0 Api + Vue 2.x + RBAC】權(quán)限框架-Blog.Core

    開箱即用的企業(yè)級前后端分離【.NET Core6.0 Api + Vue 2.x + RBAC】權(quán)限框架-Blog.Core

    今天要給大家推薦一個開箱即用的企業(yè)級前后端分離【.NET Core6.0 Api + Vue 2.x + RBAC】權(quán)限框架( 提高生產(chǎn)效率,快速開發(fā)就選它 ):Blog.Core。 Blog.Core通過詳細的文章和視頻講解,將知識點各個擊破,入門ASP.Net Core不再難。 項目功能完善,并且采用流行的前后端分離架構(gòu),代碼

    2024年01月18日
    瀏覽(46)
  • Zotero在word中插入帶超鏈接的參考文獻/交叉引用/跳轉(zhuǎn)參考文獻

    Zotero以其豐富的插件而聞名,使用起來十分的帶勁,最重要的是它是免費的、不卡頓,不像某專業(yè)軟件。 然而Zotero在word插入?yún)⒖嘉墨I時,無法為參考文獻添加超鏈接,這是一個不得不提的遺憾。 不過,有大佬已經(jīng)寫出了基于Word VBA語言的代碼,可以為Zotero在Word中的參考文獻

    2024年02月02日
    瀏覽(34)
  • 支付寶小程序 生成https鏈接 生成alipays協(xié)議鏈接

    支付寶小程序 生成https鏈接 生成alipays協(xié)議鏈接

    業(yè)務(wù)場景介紹: H5移動端支持微信支付 [ 微信支付分為微信內(nèi)支付(JSAPI支付官方API)和微信外支付(H5支付官方API)] 支付寶支付 [手機網(wǎng)站支付轉(zhuǎn) APP 支付 官方API ] 訂單生成邏輯:前端請求后端提交訂單,后端去和微信或者支付寶對接生成訂單(后續(xù)支付都是這個邏輯進行

    2024年02月08日
    瀏覽(69)
  • STM32的HAL庫SPI驅(qū)動AD7788/7789連續(xù)轉(zhuǎn)換

    STM32的HAL庫SPI驅(qū)動AD7788/7789連續(xù)轉(zhuǎn)換

    在項目中需要使用高精度的ADC采集電壓信號且沒有高速需求,而STM32F103RCT6自帶的ADC位數(shù)較低,故選擇了一款24bit的低速ADC芯片AD7789,根據(jù)它的引腳與時序特性,復(fù)用了STM32的SPI模塊來驅(qū)動。整個過程踩了一些坑,在此記錄分享一下,表述適合初學(xué)者食用。 stm32cubemx的使用不做

    2024年02月19日
    瀏覽(98)
  • java訪問https鏈接下載圖片

    // 文件下載存儲路徑 String savePath = “D:/zhxcmfs/myFiles”; // 文件命名 String fileName = “圖片.png”; // https文件下載鏈接 String apiHttp = “https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpgrefer=http%3A%2F%2Flmg.jj20.comapp=2002size=f9999,10000q=a80n

    2023年04月08日
    瀏覽(26)
  • https域名下 請求http圖片鏈接 被自動變成https請求

    https域名下 請求http圖片鏈接 被自動變成https請求

    現(xiàn)象 在以 https 協(xié)議頁面,以 img src=\\\"http://baidu.com/img/image.png\\\" 方式請求資源時,http 協(xié)議的資源地址被轉(zhuǎn)為 https 的。 溯源檢查過程 這個問題真的是第一次遇到,本地開發(fā)時沒發(fā)現(xiàn)問題,等到上到測試環(huán)境時發(fā)現(xiàn)有些圖片無法顯示。 檢查發(fā)現(xiàn) 域名用的是https,圖片來源有兩種

    2024年02月07日
    瀏覽(29)
  • burp抓包https鏈接不安全解決方法

    burp抓包https鏈接不安全解決方法

    在瀏覽器已經(jīng)導(dǎo)入 Burpsuite 的證書之后,抓包,瀏覽器仍然顯示 抓取https包提示不是私密鏈接 解決方法 適用于沒有繼續(xù)訪問的按鈕。 瀏覽器輸入 chrome://flags 搜索 翻譯過來就是 允許從本地主機加載資源的證書無效。 并設(shè)置為 Enabled 在出現(xiàn)不是私密鏈接的頁面直接 輸入 thisisun

    2024年02月16日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包