String quote(String s) { if (s == '') { return '\'\''; } var unsafeRe = RegExp(r'[^\w@%\-+=:,./]'); if (!unsafeRe.hasMatch(s)) { return s; } return '\'' + s.replaceAll('\'', '\'"\'"\'') + '\''; }