this.titles = new List<Title>();\r
\r
var jsonMsg = HBFunctions.hb_get_title_set_json(this.hbHandle);\r
- string scanJson = Marshal.PtrToStringAnsi(jsonMsg);\r
+ // Convert UTF-8 encoded jsonMsg to string\r
+ int length = 0;\r
+ while (Marshal.ReadByte(jsonMsg, length) != 0) length++; // find 0 termination\r
+ byte[] buffer = new byte[length];\r
+ Marshal.Copy(jsonMsg, buffer, 0, buffer.Length);\r
+ string scanJson = Encoding.UTF8.GetString(buffer);\r
+\r
JsonScanObject scanObject = JsonConvert.DeserializeObject<JsonScanObject>(scanJson);\r
lastScan = scanObject;\r
\r
foreach (Title title in ScanFactory.CreateTitleSet(scanObject))\r
{\r
- // Convert the Path to UTF-8.\r
- byte[] bytes = Encoding.Default.GetBytes(title.Path);\r
- string utf8Str = Encoding.UTF8.GetString(bytes);\r
- title.Path = utf8Str;\r
-\r
// Set the Main Title.\r
this.featureTitle = title.IsMainFeature ? title.TitleNumber : 0;\r
\r