整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Spring Boot集成X-admin2.2時,l

          Spring Boot集成X-admin2.2時,layui字體圖標無法正常顯示或亂碼

          近在Spring Boot集成X-admin2.2時,好多按鈕的圖標都不顯示了,只是顯示個小方塊亂碼。其他的一些checkbox之類的也是不能正常顯示。如下所示:

          解決方法主要有以下幾步:

          第一步:確定已經引入fonts或lib/layui/font下的文件到項目中,如下如:

          第二步:確定引入的文件沒有問題。

          具體路徑如下圖所示:

          需要注意的是:引入的字體圖標文件所在的目錄,必須和css文件所在的目錄平級,否則就會出現亂碼的現象。

          我先前是把所有的字體圖標文件的要用都改到了fonts下,不管如何修改配置都不能正常顯示。切記,切記,切記....

          相關閱讀:

          X-admin2.2中switch開關的監聽,以及屬性值獲取和更改狀態等操作

          Spring Boot 踩坑系列之Error resolving template

          #X-admin2.2 #Spring Boot #字體圖標亂碼

          pache Derby 是一個開源的完全使用 Java 語言實現的嵌入式關系型數據庫。JDK歷史版本中曾經包含了 Derby 版本,叫做 Java DB,但目前 JDK 中已經不再默認包含了。

          官網主頁:https://db.apache.org/derby/

          在更新JDK到21/22版本后,同樣也是出現使用控制臺執行SQL腳本出現漢字亂碼。

          運行環境

          D:\db-derby-10\bin>sysinfo

          ------------------ Java 信息 ------------------
          Java 版本:        21.0.2
          Java 供應商:      Oracle Corporation
          Java 主目錄:      D:\JDK21
          Java 類路徑:      D:\db-derby-10/lib/derbyshared.jar;D:\db-derby-10/lib/derby.jar;D:\db-derby-10/lib/de
          rbynet.jar;D:\db-derby-10/lib/derbyclient.jar;D:\db-derby-10/lib/derbytools.jar;D:\db-derby-10/lib/derby
          optionaltools.jar
          OS 名:            Windows 10
          OS 體系結構:      amd64
          OS 版本:          10.0
          Java 用戶名:      chenxd
          Java 用戶主目錄:C:\Users\chenxd
          Java 用戶目錄:    D:\db-derby-10\bin
          java.specification.name: Java Platform API Specification
          java.specification.version: 21
          java.runtime.version: 21.0.2+13-LTS-58
          --------- Derby 信息 --------
          [D:\db-derby-10\lib\derby.jar] 10.17.1.0 - (1913217)
          [D:\db-derby-10\lib\derbytools.jar] 10.17.1.0 - (1913217)
          [D:\db-derby-10\lib\derbynet.jar] 10.17.1.0 - (1913217)
          [D:\db-derby-10\lib\derbyclient.jar] 10.17.1.0 - (1913217)
          [D:\db-derby-10\lib\derbyshared.jar] 10.17.1.0 - (1913217)
          D:\db-derby-10\bin>startNetworkServer
          Tue May 14 10:47:20 CST 2024 : Apache Derby 網絡服務器 - 10.17.1.0 - (1913217) 已啟動并準備接受端口 1527
           上的連接

          運行ij,插入記錄,出現亂碼(JDK19及之前未曾出現這個問題):

          D:\db-derby-10\bin>ij -p ij.properties

          ij>connect 'chendb';
          ij> drop table zipcodes;
          ij> create table zipcodes(zipcode varchar(6), university varchar(20), city varchar(10)); 
          ij> insert into zipcodes values ('100044', '北京交通大學', '北京');
          ij> insert into zipcodes values ('200030', '上海交通大學', '上海');
          ij> select * from zipcodes;
          ZIPCO&|UNIVERSITY          |CITY
          --------------------------------------
          100044|??????????          |????
          200030|?????????           |???

          問題解決

          基于上回Java輸入輸出文件亂碼的經驗,基本確定就是控制臺字符集(GBK)和數據庫字符集(UTF-8)編碼不一致,需要修改ij運行時的字符集為GBK。由于ij運行時,實際是用java命令指定類名運行的,可以使用運行時指定 ”-Dderby.ui.codeset=GBK“ 來修改字符集為“GBK”。為了方便使用,直接使用配置文件ij.propertis,在其中加入字符集相關的屬性定義:

          ij.driver=org.apache.derby.jdbc.ClientDriver
          ij.protocol=jdbc:derby://localhost:1527/
          #解決JDK21后,命令行漢字輸入亂碼問題
          #默認命令行字符集為GBK(代碼頁936)而非UTF-8(代碼頁 65001)
          #https://www.rfc-editor.org/rfc/rfc5646.html
          derby.ui.locale=zh-Hans
          derby.ui.codeset=GBK

          重新運行ij:

          D:\db-derby-10\bin>ij -p ij.properties

          ij 版本 10.17
          ij> connect 'chendb';
          ij> insert into zipcodes values ('100044', '北京交通大學', '北京');
          已插入/更新/刪除 1 行
          ij> select * from zipcodes;
          ZIPCO&|UNIVERSITY          |CITY
          --------------------------------------
          100044|??????????          |????
          200030|?????????           |???
          100044|北京交通大學              |北京
          
          已選擇 3行
          ij>

          至此成功解決亂碼問題。

          換流的作用就是將我們的字節流轉換成字符流

          字節流是可以處理一切內容的,包括圖片,音頻,視頻,也包括純文本,在很多系統和框架的底層返回給我們的都是字節流(有時候我們使用字節流處理并不方便,這就是我們為什么要轉換字符流的原因)

          System.in,System.out都是字節流,因為我們鍵盤輸入還是輸出的都是字符串,所以我們可以對它進行轉換。

          在我們的底層,如果是純文本的話就涉及到一個東西是字符集。將字節轉成字符叫做解碼(在解碼的過程中就涉及到字符集的問題,如果工程的字符集跟源頭(文件)的字符集不統一就會出現亂碼),所以這個時候我們最好可以指定字符集

          從字節流到字符流的轉換

          只要我們看見Reader都建議加一個BufferedReader

          將寫入的字符編碼為字節

          講一下什么使用字節流,什么時候使用字符流

          其實底層都是字節,我們使用字符是為了處理一些文本和字符串提高性能字符流處理的單元為2個字節的Unicode字符,分別操作字符、字符數組或字符串,而字節流處理單元為1個字節,操作字節和字節數組。所以字符流是由Java虛擬機將字節轉化為2個字節的Unicode字符為單位的字符而成的,所以它對多國語言支持性比較好!如果是音頻文件、圖片、歌曲,就用字節流好點,如果是關系到中文(文本)的,用字符流好點 所有文件的儲存是都是字節(byte)的儲存,在磁盤上保留的并不是文件的字符而是先把字符編碼成字節,再儲存這些字節到磁盤。在讀取文件(特別是文本文件)時,也是一個字節一個字節地讀取以形成字節序列

          字節流和字符流的使用:


          Java IO流中提供了兩種用于將字節流轉換為字符流的轉換流。其中InputStreamReader用于將字節輸入流轉換為字符輸入流,其中OutputStreamWriter用于將字節輸出流轉換為字符輸出流。使用轉換流可以在一定程度上避免亂碼,還可以指定輸入輸出所使用的字符集


          講一下緩存流和轉換流的結合,看見Reader我們就可以使用緩存流提高性能

          使用轉換流實現字節到字符的轉換以及輸入和輸出

          · 節點流:可以從或向一個特定的地方(節點)讀寫數據。如FileReader.

          · 處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的鏈接。

          講一下什么是節點流

          字符流和字節流就可以叫做節點流

          出現亂碼的原因有兩種:

          1.字節數不夠出現亂碼

          2.字符集不統一出現亂碼

          html文件的下載,如何使用字節流,如何使用轉換流

          在java中文件的傳輸其實就是靠流來實現的,網絡流也是屬于字節流,所以我們先使用字節流

          我覺得寫的時候應該是全部都寫出來才寫的,具體debug才知道,我這里就不弄了

          為什么讀取的時候亂碼,寫入的時候不亂碼

          忽然一下子自己就懂了,總之寫入的時候只要講字符集設置的和源頭的文件一致就可以了


          主站蜘蛛池模板: 国产精品亚洲综合一区在线观看 | 日本一区二区三区在线视频观看免费 | 成人一区二区免费视频| 中文字幕一区二区三区在线不卡| 精品三级AV无码一区| 相泽南亚洲一区二区在线播放 | 亚洲午夜电影一区二区三区| 视频一区二区在线播放| 另类国产精品一区二区| 亚洲国产精品乱码一区二区 | 黑巨人与欧美精品一区| 国产激情视频一区二区三区| 人妻无码一区二区三区免费| 无码AV天堂一区二区三区| 国产精品一区二区久久精品无码 | 一区五十路在线中出| 色狠狠AV一区二区三区| 久久精品国产一区二区三区日韩| 在线观看中文字幕一区| 国产日韩精品视频一区二区三区 | 天堂Av无码Av一区二区三区| 国产精品视频第一区二区三区| 内射一区二区精品视频在线观看| 精品一区二区久久久久久久网精| 国产精品视频一区国模私拍| 精品福利视频一区二区三区| 末成年女AV片一区二区| 伊人久久大香线蕉av一区| 一区二区网站在线观看| 亚洲免费一区二区| 国产成人精品一区二区三区无码 | 国产免费伦精品一区二区三区| 国产在线观看一区精品| 亚洲国产一区在线| 国产精品夜色一区二区三区| 亚洲av日韩综合一区久热| 欧亚精品一区三区免费| 国产乱子伦一区二区三区| 成人区人妻精品一区二区不卡视频| 色婷婷香蕉在线一区二区| 日本一区中文字幕日本一二三区视频 |