91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node utf8漢字亂碼如何解決

發布時間:2023-02-08 11:55:16 來源:億速云 閱讀:159 作者:iii 欄目:web開發

本篇內容主要講解“node utf8漢字亂碼如何解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“node utf8漢字亂碼如何解決”吧!

node utf8漢字亂碼的解決辦法:1、通過“typeof”查看“SarchName”的類型;2、使用“Name=iconv.decode(name,'gbk')”方式轉換編碼為utf8即可。

  • node.js實現編碼轉GBK轉UTF8,中文亂碼方案

在做這些之前遇見了一個需求,則是用node去做一個姓名的模糊查詢。其實這是一個簡單再也不能簡單的事情,可是卻在這個問題上卡了兩天。

因為業務需要,給新功能做一個模糊查詢。

首先,我得搭建了一個node的http服務,然后我配置了mysql。建立了ORM模型后,準備開始編寫sql語句的時候遇見了一個奇怪的事情,由于我的node是utf8的編碼。但是我們公司的數據庫采用的是GBK的編碼,因此導致我在進行數據查詢的時候出現了錯誤,查詢失敗,原因就是因為編碼問題導致。

這問題也很簡單,轉碼唄!!!

開始百度node的轉碼方法在這里就遇見了iconv-jschardet這個插件,于是去npm了一下。開始使用

const iconv = require('iconv-jschardet');
SarchName =  iconv.encode(SarchName, 'gbk');

把前端送上來的字符轉成GBK的編碼,很開心。

結果還是報錯了。因為這個錯誤,我找了一下午。也不知道轉成功了沒有,于是試了無數種辦法還是無法解決這個編碼問題,于是想到了之前在寫PHP的時候查詢的時候用SQL轉成二進制進行模糊匹配。

于是我typeof了一下SarchName居然是Obj我就很納悶了應該是String于是輸出打印了一下,一看是個Buffer。這下明白了原來沒有直接轉成String那好,我就用Buffer.toString()方法結果還是不行,然后翻了一下文檔。發現沒有GBK的編碼,這下就頭大了。

node utf8漢字亂碼如何解決

然后我試了試ascii發現還是不行,于是我試了一下binary結果ok了。

node utf8漢字亂碼如何解決

**模糊查詢執行完成沒問題了,在返回的數據的時候發現都還是GBK編碼。那簡單啊!!!!那就轉成utf8

Name=iconv.decode(name,'gbk')

然后返回發現沒問題,那ok完成了。

沒過一會別人就測出bug說人的名字沒有顯示完全!!!!

結果有的人的名字出現了這個符號?。。。。。

百度發現說解碼不全,暫無任何解決方法。。。

最后沒辦法只能用了indexOf('?')方法去檢索字符串中出現生僻字

然后記錄其狀態再用PHP進行轉碼。

總之一個字,坑!**

補充:node.js的gbk轉utf8 遇見一些生僻字還是會轉不出來出現亂碼,建議有gbk的庫別讓node去做中文轉碼之類的事情,換別的語言吧。

到此,相信大家對“node utf8漢字亂碼如何解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰顺县| 银川市| 青神县| 海丰县| 饶阳县| 阳信县| 洪江市| 南靖县| 漳州市| 白河县| 怀远县| 留坝县| 鹤壁市| 藁城市| 石阡县| 阿拉善右旗| 洛隆县| 北安市| 通许县| 通海县| 墨江| 廊坊市| 伊春市| 仁寿县| 冕宁县| 静宁县| 尉犁县| 黔西县| 安陆市| 平定县| 合阳县| 祁门县| 纳雍县| 林口县| 南木林县| 温泉县| 连江县| 石河子市| 防城港市| 博兴县| 石景山区|