Sanitized text input for EntityMetadataWrapper set()
It turns out that if you just set the value, Drupal will not display your HTML without converting your tags to entities. So the value &lt;p&gt;Foo bar&lt;/p&gt; will be displayed literally in Views (and other areas) as &amp;lt;p&amp;gt;Foo bar&amp;lt;/p&amp;gt;.

Rather than attempt to create a sanitized safe_value myself before calling set(), I found that if I passed a format value, Drupal will take care of the sanitization for me with the filter settings defined for that format.

So the correct syntax is:

$quip = array(
  "value"  =&gt; $form_state['values']['field_quip']['value'],
  // Change to match the text format of your field.
  "format" =&gt; "general"
);
$node_wrapper-&gt;field_quip-&gt;set($quip);