- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我记得当我曾经在日本开发网站时——那里有三种不同的货币字符编码——开发人员有一个技巧来“强制”对源文件进行编码,以便它始终以正确的编码在他们的 IDE 中打开。
他们所做的是在包含仅存在于该特定字符编码中的日语字符的文件顶部添加注释——它不存在于任何其他字符编码中!这工作得很好。
我记得这是因为现在我有一个类似的问题,尽管是英语国家。
我有一些文件必须是 ISO-8859-1,但在我的编辑器(Linux 上的 Bluefish 1.0.7)中继续打开为 UTF-8。除了英镑 (£) 符号等,这通常不是问题。不要误会我的意思,我可以修复该文件并将其再次保存为 ISO-8859-1,但我希望它始终在我的编辑器中以 ISO-8859-1 格式打开。
那么,是否有任何类型的字符黑客 - 就像我上面提到的 - 来做到这一点?还是有其他方法?
附注。 Unicode 倡导者/福音传道者不必浪费时间试图让我皈依,因为我已经是他们中的一员了!这是我继承的一个摇摇欲坠的旧系统:-(
聚苯乙烯。请不要说“使用不同的编辑器”,因为我是个老屁,并且我的方式:-)
最佳答案
通常,如果您有 £
编码为 ISO-8859-1(即单个字节 0xA3),这不会构成有效的 UTF-8 字节序列的一部分,除非你不走运并且它紧跟在这样的另一个顶部位集字符之后一种使它们作为 UTF-8 序列一起工作的方法。 (您可以通过在文件顶部单独放置一个 £
来防止这种情况发生。)
所以没有编辑器应该打开任何像 UTF-8 这样的文件;如果是这样,它会丢失 £
完全地。如果你的编辑器这样做了,“使用不同的编辑器”——说真的!如果您的问题是您的编辑器正在加载不包含 £
的文件或任何其他非 ASCII 字符作为 UTF-8,导致任何新的 £
你添加到它们之后保存为 UTF-8,然后再次简单地添加一个 £
字符本身到文件的顶部当然应该停止。
您不一定要做的是让编辑器将其加载为 ISO-8859-1,而不是所有单个 top-bit-set 字节都有效的任何其他字符集。它只是像 UTF-8 和 Shift-JIS 这样的多字节编码,您可以通过使用对该编码无效的字节序列来排除它们。
在 Windows 上通常会发生的是,编辑器将使用系统默认代码页加载文件,在西方机器上通常为 1252。 (实际上与 ISO-8859-1 不完全相同,但很接近。)
一些编辑器有一个功能,你可以给他们一个提示,在第一行的注释中使用什么编码,例如。对于vim:
# vim: set fileencoding=iso-8859-1 :
关于unicode - 如何 "force"文件的 ISO-8859-1ness?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214830/
我正在尝试使用新的 c++17 类模板推导,在我应用 const 之前它似乎一切正常。这是我面临的麻烦的一个小例子: #include template struct X { T _dat
我正在使用整洁的 fmt 库,在其版本 8 中,如果编译器支持相关功能,则会对其格式字符串进行编译时检查。 在某个时候,我想编写以下代码: throw my_exception("error: {}"
我有一些实现图形算法的代码;特别是,有这些片段会导致问题: class Path{ private: const Graph* graph; public: Path(Graph* g
void foo (void *p); // library function; can't edit template void Remove (T *p) { // main code f
class Foo{}; class BarParent { Foo* p_foo; public: BarParent(Foo * const p_x) //OR BarPa
考虑以下 C++ 代码: typedef std::string& mutable_string_ref; const std::string str = "abc"; mutable_string_
我正在尝试从变量 (char*) 中移除常量特性,但出于某种原因,当我尝试更改值时,常量变量的原始值仍然保持不变。 const char* str1 = "david"; char* str2 =
我正在运行目标:tomcat:deploy。没有错误,但它没有将我的项目部署到 tomcat 中。我注意到这条消息: [INFO] Skipping non-war project 什么定义了我的项目
出于各种原因,我正在寻找一种方法来捕获传递给函数的参数的constexpr-ness。解释起来有点棘手,所以我认为代码最能展示我想要实现的目标 #include // For std::size_t
如果我创建了一个 C 模块,它向用户提供一个指向前向声明结构的句柄,如下所示: typedef struct FOO_Obj *FOO_Handle; 如果我然后声明将其用作 const 限定参数的函
我有两个结构: // ----- non-const ----- struct arg_adapter { EArgType type; // fmtA, fmtB, ...
为什么 width 在第一次实例化后不保持其 constness? template class ProjectionTest { std::array _arr; public: P
给定: template inline bool f( T n ) { return n >= 0 && n = 0 is always true 当 T 是 unsigned 类型时,有什么聪明
在最坏的情况下,从已知列表创建二叉树的时间复杂度为 O(n2),但平均情况为 O(n logn)。最坏情况和平均情况之间的差异取决于树在创建后的不平衡程度。如果 maxDepth == n,那么这是最
我有一个对象,在最基本的层面上看起来像这样: #include class x_link { public: x_link() { d
我偶然发现了一些看似正确的代码。它应该提供一个公共(public)的、不可变的指针,同时将可修改的非常量指针保持私有(private)。 奇怪的是,这段代码在 SN C++ 编译器(适用于 PlayS
This page说make_optional C++17 中的函数返回 constexpr optional .我认为(虽然我可能是错的)这需要 optional有一个 constexpr复制或移动
我已经编写了以下代码来测试跨函数调用的 noexcept 传播,它似乎并没有像我想象的那样工作。在 GCC 4.7.2 中,可以有效地测试函数是否为 noexcept 仅直接或作为模板特化参数传递时;
最近,我一直在养成一种习惯,将我的代码中的许多东西作为const: (1) 函数参数,我知道永远不会改变。例如: void foo (const int i, const string s)
我有一个关于 POD-ness 的问题。我预计如果 B 是非 POD 而 B 是 A 的成员,那么 A 也是非 POD。但是,以下代码示例输出“10”,因此 B 被正确地视为非 POD,但 A 是。
我是一名优秀的程序员,十分优秀!