diff --git a/loadubjson.m b/loadubjson.m
index b92384be83b919be3ed46427f3e490bd76336fd9..603d500899739c7edf0091ecfb943c3602b3750c 100644
--- a/loadubjson.m
+++ b/loadubjson.m
@@ -33,8 +33,8 @@ global pos inStr len  esc index_esc len_esc isoct arraytoken
 if(regexp(fname,'[\{\}\]\[]','once'))
    string=fname;
 elseif(exist(fname,'file'))
-   fid = fopen(fname,'rt');
-   string = fscanf(fid,'%c');
+   fid = fopen(fname,'rb');
+   string = fread(fid,inf,'uint8=>char')';
    fclose(fid);
 else
    error('input file does not exist');
diff --git a/saveubjson.m b/saveubjson.m
index 0a9953c7cbb3a3565a248440b7ed9100c88dd25f..591fc1818e17f343bfcdaafe38681c2b23cc2104 100644
--- a/saveubjson.m
+++ b/saveubjson.m
@@ -108,7 +108,7 @@ end
 
 % save to a file if FileName is set, suggested by Patrick Rapin
 if(~isempty(jsonopt('FileName','',opt)))
-    fid = fopen(opt.FileName, 'wt');
+    fid = fopen(opt.FileName, 'wb');
     fwrite(fid,json,'char');
     fclose(fid);
 end