libiconv庫簡單裁剪支持CP437編碼

有許多人在做項目的時候都會遇到字符編碼的不一致導致的亂碼問題,那如何去解決呢?在Linux系統上可以通過iconv函數族來進行編碼轉換,但有時候我們并不需要全部的字符集,因為可能會占用比較大的空間,本文主要支持CP437編碼格式
庫文件下載:https://ftp.gnu.org/pub/gnu/libiconv/

1.下載完成后直接解壓

  tar -xvf libiconv-1.15.tar.gz 

2.進入目錄,編寫編譯腳本,build.sh

CC=gcc
HOST=
TARGET=
DIR=/root/linux/direcho $DIR./configure CC=$CC  --target=$TARGET --host=$HOST --prefix=$DIR --enable-extra-encodingsmake && make install

上面注意 --enable-extra-encodings是打開擴展字符集
需要根據自己使用場合修改交叉編譯鏈
3.執行腳本進行編譯

chmod +x build.sh
./build.sh

4.編譯完成后
在這里插入圖片描述
5.這里執行strip壓縮體積
在這里插入圖片描述
6.我們執行程序看看都包含哪些字符集,可以看到支持了所有的字符,有好多是我們不需要的,下面進行裁剪
該iconv可執行文件依賴上面的庫,如果導入arm設備要導入相應的庫文件
在這里插入圖片描述
7.進入lib目錄編輯iconv.c文件,屏蔽一些無用代碼

//#define USE_AIX
//#define USE_OSF1
#define USE_DOS
//#define USE_EXTRA

首先屏蔽一些宏,然后編譯發現還是有一些我們不想要的字符集
8.編輯lib/encodings_dos.def文件刪除不需要的字符集,同時刪除aliases_dos.h文件的相關定義,最后刪除canonical_dos.h中的一些報錯就可以了
9.經過strip后這個時候在看就小的多了
在這里插入圖片描述
再次使用iconv查看支持的字符集就可以了

網上給出的另一種裁剪方法:

libiconv庫裁剪

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531345.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531345.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531345.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡單java在線測評程序

簡單java程序在線測評程序 一.前言 大家過年好!今年的第一篇博客啊!家里沒有網,到處蹭無線!日子過得真糾結!因為畢設的需求,簡單寫了一個java程序在線測評程序,當然也可以在本地測試…

指針強制類型轉換觸發內存自動對齊

C語言的指針是我們操作很靈活,但是也留下了不少坑,今天工作遇到了一個指針的坑,這里復現一下: 指針類型強制轉換,并進行解引用,引起的內存對齊問題.(一)問題復現: 運行環境:Ubuntu …

簡單文本編輯器

一、前言 聚天地之靈氣,集日月之精華!一個簡單的java文本編輯器由此而生。畢設所需,很是無奈! 二、界面預覽 三、實現思路 1.字體選擇器的實現 (1).字體類 class MyFont{private Font font;private Color color;public Font getFo…

u-boot新增命令后出現data abort

(一)問題描述 u-boot下新增了一條update的命令,直接輸入update沒有報錯,但是輸入up按TAB鍵補全時發現出現data abort,而且輸入不支持的命令也會有data abort (二)解決方法 最開始我包含的頭…

sublime text學習

Ctrl / ---------------------注釋 Ctrl 滾動 --------------字體變大/縮小 Ctrl N-------------------新建 軟件右下角可以選擇文檔語法模式 Ctrl Shift P ------------------命令模式 命令: sshtml模糊匹配-----語法切換到html模式,同理所得&am…

core文件如何分析

目錄(一)什么是coredump(二)coredump產生的條件(1)coredump產生主要原因:(2)如何生成coredump(三)gdb使用(四)實例調試coredump文件(五)總結(一)什么是coredu…

SpringMVC+FreeMarker

前言: 最近在學習SpringMVC,模板引擎用的是FreeMarker,之前沒有接觸過。利用SpringMVC開發其實還有許多的步驟,比如控制層,服務層,持久化層,實體等等,先弄了一個小demo來總結一下Spr…

SpringMVC那點事

一、SpringMVC返回json數據的三種方式 1、第一種方式是spring2時代的產物&#xff0c;也就是每個json視圖controller配置一個Jsoniew。 如&#xff1a;<bean id"defaultJsonView" class"org.springframework.web.servlet.view.json.MappingJacksonJsonView&q…

js學習內容的整理

1、jquery動態添加Table中的一行 function addTableRow(tableId){var html <tr>\......\</tr>";//行首插入一行if($(#tableId).find(tr).length 1){$(html).insertAfter($(#tableId).find(tr).eq(0));} else { $(html).insertBefore($(#tableId).find(tr).e…

(一)最鄰近插值python實現

這里寫目錄標題&#xff08;一&#xff09;原始圖像&#xff08;二&#xff09;最鄰近插值實現&#xff08;三&#xff09;python實現1. 安裝庫2. python程序編寫3. 效果4. 工程文件&#xff08;一&#xff09;原始圖像 &#xff08;二&#xff09;最鄰近插值實現 一般情況下我…

(二)雙線性插值python實現

這里寫目錄標題&#xff08;一&#xff09;原始圖像&#xff08;二&#xff09;雙線性插值原理&#xff08;三&#xff09;python實現1. 安裝庫2. python程序編寫3. 效果4. 工程文件&#xff08;一&#xff09;原始圖像 &#xff08;二&#xff09;雙線性插值原理 一般情況下我…

js self = this的解釋

Demo 1: function Person(){this.name hjzgg;this.age 24;this.show function(){alert(name " " age);}}var p new Person();p.show(); 錯誤&#xff1a;name 和 age都沒有定義。 Demo 2: function Person(){this.name hjzgg;this.age 24;this.show functio…

(三)圖像轉灰度圖Python實現

這里寫目錄標題&#xff08;一&#xff09;原始圖像&#xff08;二&#xff09;轉換原理&#xff08;三&#xff09;python實現1. 安裝庫2. python程序編寫3. 效果4. 工程文件&#xff08;一&#xff09;原始圖像 &#xff08;二&#xff09;轉換原理 &#xff08;三&#xff…

SD卡實例分析fat32文件系統

目錄 環境描述 分析過程 1.SD卡格式化 2.使用winhex打開sd卡 3.MBR分析 4.DBR分析

java泛型上下限

前言&#xff1a; java的泛型上下限不是很好理解&#xff0c;尤其像我這種菜雞。反反復復看了好幾遍了...&#xff0c;真是... 一、簡單的繼承體系 class Person{}class Student extends Person{}class Worker extends Person{} 二、泛型上限&#xff08;extends 關鍵字&#x…

基于matlab的步進電機仿真(一)

這里寫目錄標題環境準備基礎準備模型參數輸入和輸出仿真原理圖仿真資源環境準備 MatLab2021b 基礎準備 打開Matlab&#xff0c;在幫助文檔里面搜索step motor,我們這里選擇如下模型 該模型實現了一個通用的步進電機模型&#xff1a; 可變磁阻步進電機永磁或混合步進電機 …

java自定義類加載器

前言 java反射&#xff0c;最常用的Class.forName()方法。做畢設的時候&#xff0c;接收到代碼字符串&#xff0c;通過 JavaCompiler將代碼字符串生成A.class文件&#xff08;存放在classpath下&#xff0c;也就是eclipse項目中的bin目錄里&#xff09;&#xff0c;然后通過jav…

常用網址

MDN : 一個不錯的前端學習網站 https://developer.mozilla.org/zh-CN/  https://developer.mozilla.org/en-US/ CodePen 是一個網站前端設計開發平臺&#xff0c;是一個針對網站前端代碼設計的開發工具。 RunJS - 在線編輯、展示、分享、交流你的 JavaScript 代碼 : http://r…

repo介紹(一)

repo簡介 Repo 是我們以 Git 為基礎構建的代碼庫管理工具,可以組織多個倉庫的上傳和下載。它是由一系列的Python腳本組成&#xff0c;封裝了一系列的Git命令&#xff0c;用來統一管理多個Git倉庫 一個大型的項目可能由很多小的倉庫組合而成的&#xff0c;為了方便統一管理各個…

hash長度擴展攻擊

作為一個信息安全的人&#xff0c;打各個學校的CTF比賽是比較重要的&#xff01; 最近一個朋友發了道題目過來&#xff0c;發現有道題目比較有意思&#xff0c;這里跟大家分享下 這串代碼的大致意思是&#xff1a; 這段代碼首先引入了一個名為"flag.php"的文件&am…