问题标签 [diacritics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
22 回答
154264 浏览

excel - Microsoft Excel 破坏 .csv 文件中的变音符号?

我正在以编程方式将数据(使用 PHP 5.2)导出到 .csv 测试文件中。
示例数据:( Numéro 1注意带重音的 e)。数据是utf-8(没有前置 BOM)。

当我在 MS Excel 中打开此文件时,显示为Numéro 1.

我可以在正确显示它的文本编辑器(UltraEdit)中打开它。UE 报告字符为decimal 233.

如何在 .csv 文件中导出文本数据,以便MS Excel 正确呈现它,最好不强制使用导入向导或非默认向导设置?

0 投票
7 回答
45476 浏览

php - PHP:用 UTF-8 字符串中最接近的 7 位 ASCII 等效替换变音符号

我想要做的是从字符串中删除所有重音和变音符号,将“lärm”变成“larm”或“andré”变成“andre”。我试图做的是 utf8_decode 字符串,然后在其上使用 strtr,但由于我的源文件保存为 UTF-8 文件,我无法为所有变音符号输入 ISO-8859-15 字符 - 编辑器插入UTF-8 字符。

显然,解决这个问题的方法是包含一个 ISO-8859-15 文件,但必须有比拥有另一个必需的包含更好的方法吗?

更新:也许我对我尝试做的事情有点不准确:我实际上并不想删除变音符号,而是用最接近的“单字符 ASCII”等价物替换它们。

0 投票
6 回答
14707 浏览

regex - 这些 Unicode 字符(代码点)在这个正则表达式中是什么意思?

我有以下正则表达式:我想出了大部分如下:

在理解验证表达式的最后部分时需要帮助:

任何人都知道这是什么意思?

0 投票
20 回答
257907 浏览

.net - 如何从 .NET 中的字符串中删除变音符号(重音符号)?

我正在尝试转换一些法语加拿大语的字符串,基本上,我希望能够在保留字母的同时取出字母中的法语重音标记。(例如转换ée,所以crème brûlée会变成creme brulee

实现这一目标的最佳方法是什么?

0 投票
1 回答
2316 浏览

apache - UTF-8 URI 爆炸 Apache & mod_rewrite

我有带有 mod_rewrite 的 Apache,每当我输入一个带有重音字符的 URI 时,Apache 都会给我一个“找不到页面”错误。

URI 是:/places/tags/Café

我的页面编码是 UTF-8。我的数据库连接和表是 UTF-8。我的 Apache DefaultCharacterSet = UTF-8。是的,Apache 有语言包,但我相信它们用于页面内容,而不是 URI。

我们不希望将 url 编码成百分号和 html 实体,在我们的 1 亿行数据中,去除特殊字符目前是不切实际的。

任何帮助将不胜感激。

0 投票
2 回答
4960 浏览

asp.net - 在 .Net http 处理程序中编码 au umlaut 时遇到问题

我有一个 JavaScript 请求到一个 ASP.Net (2.0) HTTP 处理程序,该处理程序将请求传递给一个 java web 服务。在此系统中,特殊字符(例如带有重音符号的字符)无法正确传递。

例如

  • 人工输入:Düsseldorf
  • 成为一个 JavaScript 异步请求http://site/serviceproxy.ashx?q=D%FCsseldorf,据我所知,它在 ISO-8859-1 和 UTF-8 中都有效。(除非它是 UTF-8 中的 %c3%bc )
  • HttpContext.Current.Request.QueryString.Get("q")返回D�sseldorf这是麻烦开始的地方。
  • HttpUtility.UrlEncode(HttpContext.Current.Request.QueryString.Get("q"), Encoding.GetEncoding("ISO-8859-1"))返回D%3fsseldorf(一个'?')
  • HttpUtility.UrlEncode(HttpContext.Current.Request.QueryString.Get("q"), Encoding.UTF8)返回D%ef%bfsseldorf

所以它的值没有被正确解码或重新编码以传递给java服务。

  • 通知HttpContext.Current.Request.Url.Query?q=D%FCsseldorf&output=json&from=1&to=10
  • 虽然HttpContext.Current.Request.QueryString.ToString()q=D%ufffdsseldorf&output=json&from=1&to=10

为什么会这样,我怎样才能告诉它HttpContext尊重请求标头,其中包括:

QueryString并使用 UTF-8 字符集解码 URL 。

附录:正如答案所指出的,问题不在于解码,而在于编码;using escape()in JavaScript 不会根据 UTF-8 转义,而 usingencodeURIComponent()会。

0 投票
5 回答
20059 浏览

.net - 如何将变音符号更改为非变音符号

我找到了如何在 stackoverflow 上删除变音符号的答案,但是您能否告诉我是否可以将变音符号更改为非变音符号?

哦..我考虑.NET(或其他如果不可能的话)

0 投票
1 回答
13566 浏览

c# - 用 C# 中未加修饰的对应物替换重音/变音符号

重复249087

我有一堆用户生成的地址,其中可能包含带有变音符号的字符。将任何此类字符自动转换为最接近的英文等效字符的最有效(即通用)方式(除了直接替换)是什么?

例如,任何àâãäå都会变成

æ将成为两个单独的字母ae

ç会变成c

任何èéêë都会变成e

等所有可能的字母变体(最好不必为字母的每种变音符号形式查找和编码查找)。

(注意:我必须将这些地址传递给无法打印除英文字符以外的任何内容的第三方软件。我希望该软件能够处理它们,但我无法控制。)

编辑:没关系......找到答案[这里] [2]。它在我发布后出现在问题右侧的“相关”部分,但没有出现在我之前的搜索中或作为发布前的建议。唔。无论如何,我在另一个问题中添加了“变音符号”标签。

编辑2:天哪!在我关闭它后谁投票给了这个-1?

0 投票
2 回答
2248 浏览

perl - 在 Perl 中比较字符串时如何忽略重音符号?

我有这个测验应用程序,我将人们输入的内容与正确答案相匹配。现在,我所做的基本上是:

很好,好像答案是“鱼”,用户可以输入“一条鱼”并算作一个好的答案。

我面临的问题是,我的用户是法国人,我希望能够接受,比如说,用户输入“taton”,答案是“tâton”。

所以,我能做的是:

在我的检查程序中,执行:

以及同样的答案。

我不喜欢它,因为我必须对事物进行硬编码,而当我决定离开 ISO-8859-15 世界转向 UTF-8 世界的那一天,我注定要失败。

所以,我正在寻找一种比较字符串的方法,这将使"tâton" eq "taton""maçon" eq "macon"或者"macon" =~ /maçon/是真的。

0 投票
6 回答
7633 浏览

php - 重写“漂亮的 URL”时如何处理变音符号(口音)

我重写了 URL 以包含用户生成的旅游博客的标题。

我这样做是为了 URL 的可读性和 SEO 目的。

第一个整数是 id,其余的是我们人类(但与请求资源无关)。

现在人们可以编写包含任何 UTF-8 字符的标题,但大多数都不允许在 URL 中。我的听众一般说英语,但由于他们旅行,他们喜欢包括像这样的名字

什么是在 linux 上使用 PHP 在 URL 中显示的正确方法。

到目前为止,我已经看到了几种解决方案:

  1. 只是去掉所有不允许的字符,替换空格这会产生奇怪的结果:
    'Aït Ben Haddou' → /gallery/280-At_Ben_Haddou/
    不是很有帮助。

  2. 只需删除所有不允许的字符,替换空格,留下字符代码(stackoverflow.com),很可能是因为使用了“regex-hammer”,
    这会产生奇怪的结果: 'tést tést' → /questions/0000/t233st-t233st

  3. 翻译为“最接近的等价物”
    'Aït Ben Haddou' → /gallery/280-Ait_Ben_Haddou/
    但这对德语来说是错误的;例如“ü”应音译“ue”。

对我来说,作为一个荷兰人,第三个结果“看起来”是最好的。
然而,我很确定(1)很多人会有不同的意见,(2)在德国的例子中这是完全错误的。

第三个选项的另一个问题是:如何找到可以转换为 7 位等效字符的所有可能字符?

所以问题是:

  1. 在您看来,最理想的结果是什么。(在技术限制内)

  2. 如何在技术上解决它。(达到预期的结果)用 PHP。