]> granicus.if.org Git - handbrake/commitdiff
WinGui: Better UTF-8 Fix, Also fixed encode class
authorsr55 <sr55.hb@outlook.com>
Fri, 9 Jan 2015 21:07:57 +0000 (21:07 +0000)
committersr55 <sr55.hb@outlook.com>
Fri, 9 Jan 2015 21:07:57 +0000 (21:07 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6704 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs

index a62fb82fe05867ab6f327502ee0fc5ab6d908e59..1e6fe85062cf6ab751827d05c5bb019b3ea5d398 100644 (file)
@@ -492,7 +492,7 @@ namespace HandBrake.Interop
             };\r
 \r
             string encode = JsonConvert.SerializeObject(encodeObject, Formatting.Indented, settings);\r
-            HBFunctions.hb_add_json(this.hbHandle, Marshal.StringToHGlobalAnsi(encode));\r
+            HBFunctions.hb_add_json(this.hbHandle, InteropUtilities.ToUtf8PtrFromString(encode));\r
             HBFunctions.hb_start(this.hbHandle);\r
 \r
             this.encodePollTimer = new System.Timers.Timer();\r
@@ -605,12 +605,8 @@ namespace HandBrake.Interop
                 this.titles = new List<Title>();\r
 \r
                 var jsonMsg = HBFunctions.hb_get_title_set_json(this.hbHandle);\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
+                string scanJson = InteropUtilities.ToStringFromUtf8Ptr(jsonMsg);\r
 \r
                 JsonScanObject scanObject = JsonConvert.DeserializeObject<JsonScanObject>(scanJson);\r
                 lastScan = scanObject;\r