My serializing deserializing seems to be working fine, but when I run the build, it gives me these errors in the development console:
ArgumentException: Encoding name 'shift_jis' not supported
Parameter name: name
at System.Text.Encoding.GetEncoding (System.String name) [0x000ed] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Text/Encoding.cs:718
at System.Xml.XmlInputStream.Initialize (System.IO.Stream stream) [0x00265] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/System.XML/System.Xml/XmlInputStream.cs:459
at System.Xml.XmlInputStream..ctor (System.IO.Stream stream) [0x00006] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/System.XML/System.Xml/XmlInputStream.cs:359
at System.Xml.XmlStreamReader..ctor (System.IO.Stream input) [0x00000] in <filename unknown>:0
at System.Xml.XmlTextReader..ctor (System.IO.Stream input) [0x00000] in <filename unknown>:0
at System.Xml.Serialization.XmlSerializer.Deserialize (System.IO.Stream stream) [0x00000] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:327
at SaveManager.Load[TitleSave] (.TitleSave obj, System.String path) [0x0005b] in D:\Projects\Novalis\Assets\Scripts\WorldManagement\SaveManager.cs:45
at scr_TitleManager.Start () [0x00095] in D:\Projects\Novalis\Assets\Scripts\scr_TitleManager.cs:39
As far as I’m aware, I’m not using shift_jis encoding, I’m using ASCII. My OS is Japanese, so could that be causing some sort of problem? Everything is actually working fine, but I don’t really want to ignore the errors, as it could possibly cause some issues down the line.
Anyone have any advice for this?
Here is my serializing/deserializing code:
using System.Xml.Serialization;
using System.Xml;
using System.IO;
using System.Security.Cryptography;
using System.Security;
using System.Text;
public class SaveManager {
// XML SAVING
public static void Save<T>(T obj, string path){
string sKey = "Testing1";
var serializer = new XmlSerializer(obj.GetType());
var stream = new FileStream(path, FileMode.Create);
//Create Encryption stuff
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
using(CryptoStream cStream = new CryptoStream(stream, desencrypt, CryptoStreamMode.Write)){
serializer.Serialize(cStream, obj);
}
stream.Close ();
}
public static void Load<T>(ref T obj, string path){
string sKey = "Testing1";
var serializer = new XmlSerializer(obj.GetType());
var stream = new FileStream(path, FileMode.Open);
//Create Encryption stuff
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desdecrypt = DES.CreateDecryptor();
using(CryptoStream cStream = new CryptoStream(stream, desdecrypt, CryptoStreamMode.Read)){
obj = (T)serializer.Deserialize(cStream);
}
stream.Close ();
}
}