"use client"; import { useState } from "react"; import { Languages, Copy, Trash2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { toast } from "sonner"; export default function UnicodePage() { const [input, setInput] = useState(""); const copyToClipboard = async (text: string) => { if (!text) return; try { await navigator.clipboard.writeText(text); toast.success("已复制到剪贴板"); } catch { toast.error("复制失败"); } }; const toUnicode = () => { const result = input.split('').map(char => { const code = char.charCodeAt(0).toString(16).toUpperCase(); return "\\u" + ("0000" + code).slice(-4); }).join(""); setInput(result); toast.success("已转换为 Unicode"); }; const fromUnicode = () => { try { const result = input.replace(/\\u([0-9a-fA-F]{4})/g, (match, grp) => { return String.fromCharCode(parseInt(grp, 16)); }); setInput(result); toast.success("已从 Unicode 还原"); } catch { toast.error("解析失败,请检查格式"); } }; const clearAll = () => setInput(""); return (
Unicode 字符与 \uXXXX 编码之间的相互转换