整合營銷服務商

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

          免費咨詢熱線:

          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无码一区二区三区 | 亚洲日本中文字幕一区二区三区| 无码人妻一区二区三区免费看| 一区二区三区四区免费视频| 在线观看午夜亚洲一区| 久久国产精品视频一区| 老熟妇仑乱一区二区视頻| 成人区精品一区二区不卡亚洲| 精品无码一区二区三区爱欲| 无码人妻AⅤ一区二区三区 | 日本一区精品久久久久影院| 成人区人妻精品一区二区不卡视频| 夜夜精品无码一区二区三区| 鲁大师成人一区二区三区| 无码精品蜜桃一区二区三区WW| 色综合一区二区三区| 午夜福利国产一区二区| 大伊香蕉精品一区视频在线| 久久无码精品一区二区三区| 亚洲一区二区三区自拍公司| 无码人妻视频一区二区三区| 免费无码毛片一区二区APP| 日韩精品一区二区三区老鸭窝| 在线观看一区二区三区av| 在线精品日韩一区二区三区| 日本精品一区二区三区在线视频| 美女AV一区二区三区| 中文字幕一区二区三区在线不卡 | 无码人妻久久一区二区三区蜜桃| 一区视频免费观看| 亚洲国产成人一区二区精品区| 亚洲一区二区电影| 正在播放国产一区| 成人一区二区免费视频| tom影院亚洲国产一区二区| 国产精品视频免费一区二区三区| 国内精品一区二区三区在线观看 | 日韩免费视频一区二区| 国产精品自拍一区| 亚洲午夜精品一区二区麻豆 |