簡體   English   中英

C ++-轉義特殊字符

[英]c++ - escape special characters

我需要轉義所有特殊字符並替換國家字符,並為表名獲取“純文本”。

string getTableName(string name)

我的字符串可能是“šárka65_%&”。 並且我想獲取可以在數據庫中用作表名的字符串。

哪個DBMS?

  • 在標准SQL中,用雙引號引起來的名稱是分隔標識符,並且可以包含任何字符。
  • 在MS SQL Server中,用方括號括起來的名稱是分隔標識符。
  • 在MySQL中,用反引號引起來的名稱是delimie標識符。

您可以選擇將名稱括在適當的標記中。

我覺得那不是你想要的...

您的字符串在哪個代碼集中? 到達我的瀏覽器時似乎是UTF-8。 您是否需要能夠明確地反轉映射? 那更難了。

您可以使用多種方案來映射信息:

  • 一個簡單的想法就是使用標記(X)防止所有前導數字對所有內容進行十六進制編碼:

     XC5A1C3A1726B6136355F25262E 
  • 一個不太簡單的想法是十六進制編碼任何不是ASCII字母數字或下划線的東西。

     XC5A1C3A1rka65_25262E 
  • 或者,正如評論所建議的那樣,您可以為重音拉丁字母設計一個映射表-實際上,適當初始化的映射表將是最快的方法。 輸入是源字符串中的字符; 輸出是所需的一個或多個映射字符。 如果使用8位字符集,則完全可以管理。 如果您使用完整的Unicode,則它的可管理性要低得多(特別是,您如何將所有漢字音節映射到ASCII?)。

  • 要么 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM