diff --git a/src/Hex.php b/src/Hex.php
index 4c2732862dcbb607f756b41e8bd8e90142cdc07c..03f75f770f4fdbcab47b3d5351d5c8929b4487eb 100644
--- a/src/Hex.php
+++ b/src/Hex.php
@@ -45,7 +45,7 @@ abstract class Hex implements EncoderInterface
         $len = Binary::safeStrlen($binString);
         for ($i = 0; $i < $len; ++$i) {
             /** @var array<int, int> $chunk */
-            $chunk = \unpack('C', Binary::safeSubstr($binString, $i, 1));
+            $chunk = \unpack('C', $binString[$i]);
             $c = $chunk[1] & 0xf;
             $b = $chunk[1] >> 4;
 
@@ -73,7 +73,7 @@ abstract class Hex implements EncoderInterface
 
         for ($i = 0; $i < $len; ++$i) {
             /** @var array<int, int> $chunk */
-            $chunk = \unpack('C', Binary::safeSubstr($binString, $i, 2));
+            $chunk = \unpack('C', $binString[$i]);
             $c = $chunk[1] & 0xf;
             $b = $chunk[1] >> 4;