diff --git a/lib/modules/Stdio.pmod/module.pmod b/lib/modules/Stdio.pmod/module.pmod
index e745a7907c526497c95d378df17c7caa86289964..4ef5052febf0fcb35da6e5dde8c1dc1117037ece 100644
--- a/lib/modules/Stdio.pmod/module.pmod
+++ b/lib/modules/Stdio.pmod/module.pmod
@@ -2307,7 +2307,7 @@ void report_file_open_places (string file)
 //! @seealso
 //! @[read_bytes()], @[write_file()]
 //!
-string read_file(string filename,void|int start,void|int len)
+string(0..255) read_file(string filename,void|int start,void|int len)
 {
   FILE f;
   string ret;
@@ -2386,7 +2386,7 @@ string read_file(string filename,void|int start,void|int len)
 //! @seealso
 //! @[read_file], @[write_file()], @[append_file()]
 //!
-string read_bytes(string filename, void|int start,void|int len)
+string(0..255) read_bytes(string filename, void|int start,void|int len)
 {
   string ret;
   File f = File();
diff --git a/src/builtin.cmod b/src/builtin.cmod
index 00f69c00213aedc781e57f2ac2cca186f0183cca..800f639a14eb321efe9af5338b2cbfa8d0a3af77 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -949,7 +949,7 @@ static const unsigned char hexdecode[256] =
 };
 
 PMOD_EXPORT
-PIKEFUN string string2hex(string s)
+    PIKEFUN string(0..255) string2hex(string s)
   errname String.string2hex;
   optflags OPT_TRY_OPTIMIZE;
 {
@@ -982,7 +982,7 @@ PIKEFUN string string2hex(string s)
  *!   @[string2hex()]
  */
 PMOD_EXPORT
-PIKEFUN string hex2string(string hex)
+PIKEFUN string(0..255) hex2string(string hex)
   errname String.hex2string;
   optflags OPT_TRY_OPTIMIZE;
 {
diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index 30c56dfac8b19a54e3e936482929f2d9ca227228..e1bc1a6d9e2269c5a5ff49ba363a015493762b72 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -10266,11 +10266,11 @@ void init_builtin_efuns(void)
 
 /* function(mixed,void|object:string) */
   ADD_EFUN("encode_value", f_encode_value,
-	   tFunc(tMix tOr(tVoid,tObj),tStr), OPT_TRY_OPTIMIZE);
+	   tFunc(tMix tOr(tVoid,tObj),tStr8), OPT_TRY_OPTIMIZE);
 
   /* function(mixed,void|object:string) */
   ADD_EFUN("encode_value_canonic", f_encode_value_canonic,
-	   tFunc(tMix tOr(tVoid,tObj),tStr), OPT_TRY_OPTIMIZE);
+	   tFunc(tMix tOr(tVoid,tObj),tStr8), OPT_TRY_OPTIMIZE);
 
 /* function(string,void|object:mixed) */
   ADD_EFUN("decode_value", f_decode_value,