title: D8 PHP: Updating "Text (plain)" field value on node entity via set() and save() ignored when value changes from "1" to "01"
body: <p><strong>Goal: Programmatically change value of string field from "1" to "01" using entity ->set() and ->save()</strong></p>
  
  <p>When attempting to update a field on a node programmatically (via a custom module's cron hook), the initial value of the "Text (plain)" field is "1". When attempting to update the field programmatically to "01" (the 0 is important for business purposes), the change is ignored. However, it does work if I set to almost any other value.</p>
  
  <pre><code>// DOES NOT save update to field (Current value is "1")
  $node = \Drupal\node\Entity\Node::load(1);
  $node-&gt;set('field_code', '01'); // '01' is indeed a string
  $node-&gt;save();
  </code></pre>
  
  <pre><code>// DOES save update to field (Current value is "1")
  $node = \Drupal\node\Entity\Node::load(1);
  $node-&gt;set('field_code', '02');
  $node-&gt;save();
  </code></pre>
  
  <p>If I were to make the change via the UI's node edit form, the change is saved in the same scenario.</p>
  
  <p>Has anyone else encountered this? It seems that there must be some validation that is occurring that is comparing the strings before saving as <code>'01' == '1'; // true</code> (as string) in PHP.</p>