我看到几个提到DNS名称(域名)的最大字符串长度是253个字符.维基百科似乎在引用这篇旧博文:
https://en.wikipedia.org/wiki/Hostname http://blogs.msdn.com/b/oldnewthing/archive/2012/04/12/10292868.aspx
另一方面,如果我理解RFC,那么这篇文章就错了.DNS名称最大字符串长度应为250个ASCII字符,而不是253,基于以下字节序列,根据RFC1035最多为255个字节:
为了简化实现,域名的总长度(即,标签八位字节和标签长度八位字节)被限制为255个八位字节或更少.
根据RFC1035,域名的组成如下:
域名表示为标签序列,其中每个标签由长度八位字节后跟该八位字节数组成.域名以根的空标签的零长度八位字节终止.注意,该字段可以是奇数个八位字节; 没有使用填充.
这意味着以下字段构成域名:
格式应始终是(与博客文章不同):
LL + LN [ LL + LN ...] + NL
这意味着最大长度应为(1字节= 1个字符= 1个八位字节):
LL(1)+ LN(63)+ LL(1)+ LN(63)+ LL(1)+ LN(63)LL(1)+ LN(61)+ NL(1)= 255字节
因此,如果我们仅计算字符串部分(LN s),我们得到:
63 + 63 + 63 + 61 =最多250个字符.
我错过了什么,或者我们应该更新一些维基百科的参考文献?我不确定的唯一部分是关于Null标签是255字节的一部分.
我只是对DNS的RFC中某些变量的命名法感到好奇:https://www.ietf.org/rfc/rfc1035.txt
虽然我能找到大多数其他缩略词:
我想知道" QD COUNT" 中" QD "代表什么?
我正在开发一个包,计划在 npmjs 上公开发布。我们称之为“文本包”。
我希望默认情况下安装该软件包时,您可以.txt直接导入文件并获取正确的类型(开箱即用),如下所示:
import text from './file.txt'
Run Code Online (Sandbox Code Playgroud)
该text变量将是类型,string因为包已经定义了它的类型,使用类似这样的东西(在 global.d.ts 中):
declare module '*.txt' {
export const text: string;
export default text;
}
Run Code Online (Sandbox Code Playgroud)
如果我将 global.d.ts 包含在我的包中,并且从该包中导入某些内容,那么在导入文件时我将自动获得正确的类型.txt。
但问题是有时我只需要导入一个.txt文件,而不需要从“文本包”导入任何内容,这就是为什么我想知道是否有某种方法,当您安装一个包来安装一个全局类型时,该全局类型不会需要导入其他任何内容才能应用该类型。
换句话说,一旦您安装了我的“txt 包”,它将立即declare module '*.txt'适用于我的整个项目。
有没有办法做到这一点,或者安装我的包的人必须声明自己的全局类型(例如,declarations.d.ts)才能.txt全局导入文件?
我知道即使导入类型有效,它仍然需要 Webpack 或其他捆绑器才能真正工作,但这个问题只是关于类型。
我正在慢慢地从 PHP 过渡到 Node.js,并试图找到类似于composer dumpautoload. 多亏了PSR-4,当use在每个文件的开头使用带有简单语句的命令时,可以很容易地访问 PHP 中任何文件中的任何类。
npm似乎在管理包和依赖项方面做得很好,但是在您自己的项目中具有相同的灵活性将避免创建require在文件更改路径时很容易中断的语句。
我要查找的示例 - 同一文件夹中的 2 个文件:
一些 testClass.js(类文件)
var testClass = {
sayHello: function () {
console.log('this is a test');
}
};
module.exports = testClass ;
Run Code Online (Sandbox Code Playgroud)
通常这是您将放在另一个文件 index.js 文件中的内容:
var testClass = require('./testClass');
testClass.sayHello();
Run Code Online (Sandbox Code Playgroud)
但是想象一下,您可以使用一些应用程序或命令(例如 PHPcomposer dumpautoload并简单地运行以下命令)为所有类预先编制索引:
var testClass = require('testClass');
testClass.sayHello();
Run Code Online (Sandbox Code Playgroud)
我找不到任何似乎可以实现这一目标的解决方案。
我错过了什么?
在测试一些代码时,我偶然发现了以下MySQL错误:
Error Code: 1267. Illegal mix of collations (utf8_general_ci,IMPLICIT) and ( utf8mb4_general_ci,COERCIBLE) for operation '='
Run Code Online (Sandbox Code Playgroud)
我在标准的MySQL UTF-8整理列上使用WHERE语句,该列包含一个使用4个字节的字符.除非我误解,在阅读时,我发现了以下信息:
在我看来,我认为没有理由使用原始的MySQL UTF-8实现,因为它不完整.所以我做了一些服务器端配置,以确保所有默认值都指向utf8mb4.一切似乎都很好,但现在我的应用程序:我可以使用我的表单中的字符,而不必担心MySQL.
我的问题现在仍然是当我连接MySQL Workbench时,似乎编码被强制为UTF-8.因此,即使我的应用程序正常运行,如果我想直接在MySQL Workbench中运行测试,我会得到"非法混合排序"错误,除非我在启动应用程序后运行此修复程序(在Workbench中):
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'
Run Code Online (Sandbox Code Playgroud)
我发现这个老问题(MySQL Workbench charset)似乎无法覆盖设置,但即使我花了太多时间搜索配置,我也不敢相信这仍然是这样的情况?
我正在尝试扩展 Cypress 10.8.0 中的 Webpack 配置,但我能找到的唯一文档是指“遗留插件文件”: https: //github.com/cypress-io/cypress/tree/master/npm /webpack-预处理器#修改默认选项
我想有一种方法可以直接在cypress.config文件中执行此操作,但是如何呢?
我已经尝试了3天以避免在我的新响应式设计中使用表格,主要是因为每个人都说他们是邪恶的.另一方面,在对SEO和桌子进行更多研究的同时,有些人甚至说它提高了他们的知名度.
在任何情况下,div和HTML5的语义都要好得多,所以我真的希望以下示例有效.主要问题是在IE9和10中,由于"高度100%"值,"节行"将溢出.所有其他浏览器似乎反应良好.
有谁知道如何解决这个问题(理想情况下没有Javascript?):
JSFiddle:http://jsfiddle.net/fvqvdske/1/
在IE10仿真模式下测试的全尺寸页面:http://jsfiddle.net/fvqvdske/1/show
该唯一的问题是溢出和IE9,10 -中间行需要填补的页眉和页脚剩下的全部空间(和页眉和页脚需要可以调整高度,以适应其内容动态例如,没有固定的,没有绝对的位置).
HTML
<body>
<header role="banner">
<div>
<div>
This is the top banner
</div>
</div>
</header>
<section role="main">
<div>
<div>
<div>
<div>
<div style="border: 2px solid red;">
This is the content<br/>
This is the content<br/>
This is the content<br/>
This is the content<br/>
This is the content<br/>
</div>
</div>
</div>
</div>
</div>
</section>
<footer role="contentinfo">
<div>
<div>
This is the footer
</div>
</div>
</footer> …Run Code Online (Sandbox Code Playgroud) 我开始学习iOS Stringsdict 文件,并在使用以下语法的项目中找到了一些现有代码:
<key>zero</key>
<string>You no message.</string>
Run Code Online (Sandbox Code Playgroud)
根据 CLDR,zero在英语中是无效的复数形式,我们希望使用明确的复数规则(=0使用 ICU MessageFormat 时)
我试图找到如何在 iOS Stringsdict 文件中使用显式复数规则,但找不到任何方法来实现这一点。有人可以确认这是否受支持吗?
解决方案示例(我无法测试它们,但也许有人可以?)
<key>0</key>
<string>You no message.</string>
Run Code Online (Sandbox Code Playgroud)
或者
<key>=0</key>
<string>You no message.</string>
Run Code Online (Sandbox Code Playgroud)
关于 ICU MessageFormat 的 CLDR 实现的显式复数规则部分的额外参考:
https://formatjs.io/guides/message-syntax/#plural-format
=value 这用于匹配特定值,而不管当前语言环境的多个类别。
我正在开发一个自定义 i18n 模块,并且希望替换此代码(这是一个“关于我们”页面):
const messages = (await import(`./about-us.${locale}.json`))
.default as Messages;
Run Code Online (Sandbox Code Playgroud)
经过
const messages = (
await import(`./${__filename.replace('.tsx', `.${locale}.json`)}`)
).default as Messages;
Run Code Online (Sandbox Code Playgroud)
不幸的__filename是/index.js(我猜是因为 Webpack?) - 有什么方法可以实现我在示例中尝试做的事情,或者需要直接内置 Next.js 才能工作?
node.js ×3
dns ×2
javascript ×2
rfc ×2
rfc1035 ×2
typescript ×2
amazon-ses ×1
autoloader ×1
aws-sdk-js ×1
cldr ×1
css ×1
css-tables ×1
cypress ×1
hostname ×1
html ×1
html5 ×1
ios ×1
localization ×1
mysql ×1
next.js ×1
nomenclature ×1
npm ×1
php ×1
reactjs ×1
types ×1
unicode ×1
utf-8 ×1
webpack ×1