首頁 後端開發 XML/RSS教程 【XML】UTF8和GB2312編碼轉換出現亂碼的解決方案

【XML】UTF8和GB2312編碼轉換出現亂碼的解決方案

Apr 22, 2017 pm 01:53 PM
utf8

審核完的資訊要產生XML類型的文件,並且XML要採用GB2312編碼,因為採集的新聞網站,有很多網站採用的是UTF8編碼,這樣在轉換的過程中又出現亂碼

#最近做了一個小項目,遇到這類問題,記錄一下,也算是一個總結。
此專案分為兩部分,一個是新聞資料收集,一個是收集資訊的審核,最後產生XML檔。
資料收集後的資料經過使用者編輯完後,要匯出一個ACCESS文件,然後把這個文件匯入到資訊審核系統。在ACCESS庫中儲存新聞資訊的字段類型是ntext類型,而審核系統庫中對應的是varchar(max)類型的字段,導入之後,發現有的空白字符會出現亂碼,表現為問號(?),其實經過後面的測試,這不是空白(空格)字符,而一個特殊字符,怎麼辦?經過幾番測試後發現,varchar(max)類型要改成nvarchar(max)類型,這樣匯入的資料就不會再有此類問題了。
但後面的測試過程中,又會發現對導入後的採集資訊變更(透過.net程式編輯功能)後,資料庫中此條資訊又出現了亂碼問題,研究後發現在插入語句中這樣寫就不會出現此類問題了,如insert into 表名(news)values(N'"+更新後的值+""),為什麼加N?去百度一下就明白了。
到此,心中總算得到安慰,但後面的問題又讓人陷入鬱悶之中。網站採用的是UTF8編碼,這樣在轉換的過程中又出現亂碼(還是那個「空白」特殊字元搞的),怎麼辦?問題,這下弄的一上午為了解決這個問題,最後還是沒有辦法,正鬱悶之時,突然想到透過VS的調試功能來看看這個特殊字符究竟是什麼玩意,最後通過把數據庫的此字段值讀取出後,然後轉換成字元數組,content.ToCharArray(); 一個一個的看,發現,導致亂碼的這個字元是' '注意引號中的空白,這不是一個空格,而是一個在GB2312中無法識別的特殊字符,此時突然想到,能不能把這個字符的值直接用空格替換呢? ,必須要用調試出來的這個值(因為這才是真正的導致亂碼的那個特殊字元),調試的時候在即使窗體中貼上。

以上是【XML】UTF8和GB2312編碼轉換出現亂碼的解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在電腦上輸入底線 如何在電腦上輸入底線 Feb 19, 2024 pm 08:36 PM

電腦下劃線怎麼打在電腦輸入文字時,我們常需要使用底線來突出某些內容或進行標記。然而,對於一些不太熟悉電腦輸入法的人來說,打出底線可能會有些困惑。本文將向大家介紹如何在電腦上打出底線。在不同的電腦作業系統和軟體中,輸入底線的方式可能會稍有不同。以下將分別介紹Windows作業系統和Mac作業系統上的常用方法。首先,我們先來看看在Windows操作

utf8編碼漢字佔多少位元組 utf8編碼漢字佔多少位元組 Feb 21, 2023 am 11:40 AM

utf8編碼漢字佔3個位元組。在UTF-8編碼中,一個中文等於三個位元組,一個中文標點佔三個位元組;而在Unicode編碼中,一個中文(含繁體)等於兩個位元組。 UTF-8使用1~4位元組為每個字元編碼,一個US-ASCIl字元只需1位元組編碼,帶有變音符號的拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文等字母則需要2位元組編碼。

探究golang編碼轉換的實作機制 探究golang編碼轉換的實作機制 Feb 19, 2024 pm 03:21 PM

Golang作為一種強大的程式語言,具有較高的性能和並發能力,同時也提供了豐富的標準庫支持,其中包括了對編碼轉換的支持。本文將深入探討Golang中編碼轉換的實作原理,並結合具體的程式碼範例進行分析。什麼是編碼轉換?編碼轉換指的是將一個字元序列從一種編碼轉換為另一種編碼的過程。在實際的開發中,我們經常需要處理不同編碼之間的轉換,例如將UTF-8編碼的字串轉換

簡單學習dedecms編碼轉換功能的方法 簡單學習dedecms編碼轉換功能的方法 Mar 14, 2024 pm 02:09 PM

學習dedecms編碼轉換功能並不複雜,透過簡單的程式碼範例,可以幫助您快速掌握這項技能。在dedecms中,編碼轉換功能通常用於處理中文亂碼、特殊字元等問題,確保系統的正常運作和資料的準確性。以下將詳細介紹如何使用dedecms的編碼轉換功能,讓您輕鬆應對各種編碼相關的需求。 1.UTF-8轉GBK在dedecms中,如果需要將UTF-8編碼的字串轉換為G

MySql的Ascii和UTF-8編碼:如何壓縮和轉換MySQL的字元編碼 MySql的Ascii和UTF-8編碼:如何壓縮和轉換MySQL的字元編碼 Jun 16, 2023 pm 12:07 PM

在MySQL資料庫中,字元編碼是非常重要的一個概念。字元編碼指的是將字元對應成二進位資料的方式。 MySQL中支援的字元編碼種類有多種,最常用的是Ascii編碼和UTF-8編碼。這兩種字元編碼在MySQL中扮演了非常重要的作用,因為MySQL中的資料是以字元形式儲存的,而字元編碼的選擇可能會影響資料庫的效能和空間。 Ascii編碼是一種基於拉丁字母的編碼方式,

node utf8漢字亂碼怎麼辦 node utf8漢字亂碼怎麼辦 Feb 08, 2023 am 10:29 AM

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

dedecms編碼轉換插件的使用方法 dedecms編碼轉換插件的使用方法 Mar 14, 2024 pm 06:03 PM

《DedeCMS編碼轉換外掛程式的使用方法,需要具體程式碼範例》DedeCMS是一款功能強大、易於使用的開源內容管理系統,廣泛應用於各類網站建置。在使用DedeCMS的過程中,有時會碰到需要對內容進行編碼轉換的情況,特別是在處理多語言網站或涉及不同編碼的資料時。為了簡化這項操作,DedeCMS提供了編碼轉換插件,可輕鬆實現對內容的編碼轉換,並提高網站的靈活性

如何處理C++開發中的編碼轉換問題 如何處理C++開發中的編碼轉換問題 Aug 22, 2023 am 11:07 AM

如何處理C++開發中的編碼轉換問題在C++開發過程中,常常會遇到需要處理不同編碼之間轉換的問題。由於不同的編碼格式之間存在差異,因此在進行編碼轉換時需要注意一些細節。本文將介紹如何處理C++開發中的編碼轉換問題。一、了解不同編碼格式在處理編碼轉換問題之前,首先需要先了解不同的編碼格式。常見的編碼格式有ASCII、UTF-8、GBK等。 ASCII是最早的編碼格式

See all articles