>>696をIDS(漢字構成記述文字列)対応にした。ビャンビャン麵のビャンという漢字の
IDSを正しく表示できるのは、源ノ等幅、源ノ明朝、源ノゴシックのバージョン1.xxxと
Visual Studio Code, Edgeなどの組み合わせに限られる。正しく表示されるとこうなる。
://i.imgur.com/TEDafUA.png
バージョン2.xxxxではビャンという漢字に単独のコードU+30EDEが割り当てられたので、
IDSでは表示できなくなった。

function strrev($s)
{
  $m = 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2
  $p = $q = ""
  $n = 0
  [Globalization.StringInfo]::GetTextElementEnumerator($s) |% {
    if (0x2FF0..0x2FFB -contains $_[0]) {
      if (!$n) {$n = 1}
      $n += $m[$_[0] - 0x2FF0]
    }
    $p += $_
    if (!$n -or !--$n) {$p, $q = "", ($p + $q)}
  }
  $p + $q
}

foreach ($s in "⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心麵で麵⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心", "⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心麵で麺⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心") {
  $t = strrev $s
  "元文字列: $s"
  "逆文字列: $t"
  ("回文ではありません。", "回文です。")[$s -ceq $t]
  ""
}