0

名前と値のペアを含む Webspeed URL に含まれるキャリッジ リターンとラインフィード文字を削除する必要があります。アイデアをください!

4

2 に答える 2

0

最近、このようなことをする必要があり、次のものが非常に便利であることがわかりました。これは少し極端かもしれません。すべての制御コードと ascii 126 よりも高いコードをすべて削除します。しかし、これらの制限は簡単に調整できます。(私の使用法は、テキスト フィールドにデータを入力することです。そのため、そのようなものはすべて、私にとっては不正な入力です。)

define variable hd as character no-undo initial "0123456789ABCDEF".

function hex2char returns character ( h as character ):

  define variable i as integer no-undo.

  if length( h ) <> 2 or index( hd, substring( h, 1, 1 )) < 0 or index( hd, substring( h, 2, 1 )) < 0 then
    return "".

  i = ((( index( hd, substring( h, 1, 1 )) - 1 ) * 16 ) +
          index( hd, substring( h, 2, 1 )) - 1
      ).

  if i < 32 or i >= 127 then
    return "".
   else
    return chr( i ).

end.

function url-decode returns character ( input url as character ):

  define variable xurl as character no-undo.
  define variable zurl as character no-undo.

  define variable pct as integer no-undo.

  /* fix known trouble makers
   */

  assign
    xurl = replace( url, "+", " " )
    xurl = replace( xurl, "%0A%0D", "~n" )      /* <LF><CR>     */
    xurl = replace( xurl, "%0D%0A", "~n" )      /* <CR><LF>     */
    xurl = replace( xurl, "%0D",    "~n" )      /* <CR>         */
  .

  pct  = index( xurl, "%" ).

  do while pct > 0 and xurl > "":
    assign
      zurl = zurl + substring( xurl, 1, pct - 1 ) + hex2char( substring( xurl, pct + 1, 2 ))
      xurl = substring( xurl, pct + 3 )
      pct  = index( xurl, "%" )
    .
  end.

  return zurl + xurl.

end.

display url-decode( sampleUrl ) view-as editor size 60 by 25.
于 2013-12-03T14:21:07.443 に答える